Tillakaratne Dilshan's century guided Sri Lanka to a seven-wicket win over New Zealand in the third one-day international in Pallekele.
Dilshan finished on 102 not out, his 14th ODI hundred, as the home side chased down a target of 197 with 11 balls to spare in a match eventually reduced to 33 overs per side by rain.
The Sri Lanka opener, who hit 12 fours and a six during his 95-ball effort, was supported by Angelo Mathews (54no) in an unbroken fourth-wicket stand of 127.
Dilshan played through the pain of a back injury suffered during the warm-up and afterwards said he was operating at only "75 per cent" fitness.
The result puts Sri Lanka 2-0 up with two to play in the five-match series, the opening game of which was washed out.
BJ Watling's 96 not out had earlier seen New Zealand up to 188-6 in an innings that was twice halted by rain, a total that was then revised upwards by eight runs under the Duckworth-Lewis method.
Opening batsman Watling hit 12 fours in his 88-ball contribution and combined with James Franklin (26) in a fifth-wicket stand of 56 after the tourists had slumped to 49-4 in the 17th over.
Nathan McCullum (22no) added a final flourish with a couple of sixes, while Watling settled for a single off the final delivery when he needed maximum for a maiden ODI century.
The series moves to Hambantota for the final two matches on November 10 and 12.