The Blackcaps have restricted Sri Lanka to just 157 in their third and final one-day international, and face a straightforward run chase to take the series 2-0 at Hamilton's Seddon Park.
Skittled in less than 20 overs in a 198-run defeat at Auckland last week, the tourists at least passed 100 this time, but again failed to bat out their full innings.
Leading a depleted bowling attack without the likes of Tim Southee, Lockie Ferguson and Mitchell Santner, Matt Henry stood tallest for New Zealand, taking three wickets and conceding only 14 runs from his 10-over spell.
He also took two catches, as eight Sri Lankan batters were out finding fielders.
Daryl Mitchell again proved his value as an allround option, while Henry Shipley carried on from his five-wicket haul in the series opener, with the pair returning identical 3/32 figures with the ball.
The Blackcaps will need 158 runs from 50 overs to take the series 2-0 and finish atop the ICC's ODI Super League before this year's World Cup in India.
Chad Bowes and Tom Blundell were named open the NZ batting.
After game two at Christchurch was washed out earlier this week, Sri Lanka captain Dasun Shanaka won the toss and opted to bat first, but was quickly made to rue his decision.
In a brilliant opening spell, Henry and Shipley reduced the visitors' top order to 18/3, as Nuwanindu Fernando (2), Kusal Mendis (0) and Angelo Mathews (0) were all caught behind the wicket.
From the other end, Mitchell struck twice with the ball, removing Charith Asalanka (9), caught by Shipley at deep midwicket, and Dhananjaya de Silva (13), caught by Henry at mid-off.
As wickets fell around him, Sri Lanka opener Pathum Nissanka passed 50 from 58 balls, but was sold up the river by his captain, and run out by Henry Nicholls and Ish Sodhi for 57 of his side's 100/6 at the time.
Shanaka made his way to 31, but then gave away his own wicket, when he too was out to Shipley, trying to clear mid-on, but only finding Henry.
Mitchell returned to remove Wanindu Hasaranga for a duck, caught behind by wicketkeeper Tom Latham, when he top-edged a pull shot, before Henry ended Chamika Karunaratne's resistance for 24, with another catch behind, after taking Sri Lanka to 150/9.
Sri Lanka dragged their innings into the 42nd over, but Shipley bowled Kasun Rajitha for nine, as the final wicket to fall in an otherwise uninspired batting effort.
Sri Lanka 157 (Nissanka 57, Shanaka 31; Henry 3/14, Shipley 3/32, Mitchell 3/32)
NZ require 158 to win