Sri Lanka survived a late wobble to claim a three-wicket victory over New Zealand in the second match of the triangular series in Dambulla.
Set a target of 193, the hosts looked well on course at 162-3 in the 37th over as opening batsman Upul Tharanga led the way with his 17th ODI half-century.
But Tharanga, who hit nine fours during a 109-ball contribution of 70 and shared a second-wicket stand of 85 with skipper Kumar Sangakkara (48), was the first of four wickets to go down in the space of 14 deliveries.
New Zealand seamer Kyle Mills (4-41) accounted for Tharanga, Angelo Mathews (0) and Rangana Herath (2), while Tim Southee (1-41) had Nuwan Kulasekara (7) caught behind.
Thilan Samaraweera, however, remained cool amid the carnage at the other end, steering his side home in the 41st over with 36 not out - although Sri Lanka's failure to finish the job in the previous over cost them a bonus point.
New Zealand, who had beaten India by 200 runs in the tournament opener on Tuesday, were earlier bowled out for 192 in 48.1 overs after opting to bat first.
Opening batsman BJ Watling hit 55 off 68 balls but received little support lower down the order as the visiting line-up failed to come to terms with Sri Lanka's attack.
Seam duo Lasith Malinga (3-35) and Angelo Mathews (3-36) each picked up three wickets, while left-arm spinner Rangana Herath finished with 2-35.
The tri-series continues on Monday when Sri Lanka take on India.