New Zealand beat Sri Lanka by four wickets in the third one-day international in Christchurch on Tuesday to take a 2-1 lead in the five-match series.
Set a revised target of 110 off 46 overs to win after Sri Lanka made 112 all out from their rain-shortened innings, New Zealand reached the mark in the 25th over when Peter Fulton smacked Dilhara Fernando for six.
Fulton finished unbeaten on 43 after sharing an unbroken partnership of 40 with James Franklin to guide the Kiwis to victory after they had slumped to 70 for six.
But New Zealand's win was soured by a row over the dismissal of top-order batsman Ross Taylor, who was given out caught by Tillakaratne Dilshan for a duck.
Dilshan claimed the catch but television replays later showed that he had dropped the ball.
Sri Lanka captain Mahela Jayawardene said his players thought the catch had been taken cleanly and would have called Taylor back had they seen the replay before the next batsman took strike.
"The technology is there and the umpires are there to make those decisions, we thought they'd go upstairs," Jayawardene told the New Zealand Press Association.
"Nothing came out to me in the middle before the next ball was bowled."
New Zealand's stand-in skipper Daniel Vettori said he was disappointed by Taylor's dismissal.
"Sri Lanka have had numerous opportunities to display their own spirit of the game and this was another let down of it," Vettori said.
Sri Lanka had earlier recorded their lowest one-day score in 64 matches against New Zealand, collapsing to be all out inside 36 overs.
New Zealand seamer Michael Mason captured four wickets while left-arm spinner Vettori claimed two. Marvan Atapattu top-scored for Sri Lanka with 28 off 26 deliveries.
The match was reduced to 46 overs each after a series of rain stoppages. The start was delayed by 45 minutes because of morning showers, then the players were twice forced to leave the field during Sri Lanka's innings.
Sri Lanka won the first match by seven wickets in Napier and New Zealand replied with a thrilling one-wicket victory in Queenstown on Sunday.
The next game is in Auckland on Saturday with the final one in Hamilton next Tuesday.
U. Tharanga c McCullum b Mason 11
S. Jayasuriya c McCullum b Bond 0
M. Atapattu c Taylor b Mason 28
K. Sangakkara c Taylor b Mason 15
M. Jayawardene run out 1
C. Silva c&b Mason 4
T. Dilshan run out 18
F. Maharoof c McCullum b Vettori 13
D. Fernando not out 8
M. Muralitharan c Taylor b Franklin 8
R. Perera c Franklin b Vettori 0
Extras: (nb-4 w-2) 6
Total: (all out, 35.2 overs) 112
Fall of wickets: 1-0, 2-32, 3-50, 4-55, 5-61, 6-68, 7-92, 8-99, 9-112, 10-112
Bowling: M. Mason 9 - 1 - 24 - 4 (nb-2 w-1), S. Bond 8 - 1 - 37 - 1 (nb-1), J. Franklin 7 - 1 - 32 - 1 (nb-1), M. Gillespie 6 - 3 - 12 - 0 (w-1), D. Vettori 5.2 - 2 - 7 2.
(D/L Target: 110 off 46)
B. McCullum c Silva b Perera 22
N. Astle b Maharoof 0
R. Taylor c Dilshan b Perera 0
P. Fulton not out 43
D. Vettori c Sangakkara b D. Fernando 11
J. Marshall c Dilshan b Muralitharan 5
H. Marshall b D. Fernando 4
J. Franklin not out 15
Extras: (b-1 lb-7 w-2) 10
Total: (for 6 wickets, 24.3 overs) 110
Fall of wickets: 1-1, 2-8, 3-27, 4-51, 5-65, 6-70
Did not bat: M. Gillespie, M. Mason, S. Bond
Bowling: F. Maharoof 4 - 1 - 13 1, R. Perera 5 - 0 - 37 - 2 (w-1), M. Muralitharan 9 - 2 - 18 - 1 (w-1), D. Fernando 6.3 - 0 - 34 - 2 .
Result: New Zealand won by 4 wickets (D/L Method)