After a sparkling new high score from Tim Seifert (88 off 48) had the hosts cruising to their target of 183 in Queenstown, his dismissal sparked a late wobble that included three wickets in as many balls in the final over.
But needing two runs from two deliveries, Rachin Ravindra carved Lahiru Kumara into a gap to complete the chase with a ball to spare, the latest and last in a summer of tight finishes.
New Zealand concluded the home season with seven victories in their final eight matches across formats, a run the began with wild test wins over England and Sri Lanka.
The only loss in that span came from a super over in the first T20 against Sri Lanka, and another looked possible late this afternoon. But the fast start of Seifert - coming off an unbeaten 79 in the second match - proved just enough to help his side edge the series 2-1.
Sri Lanka’s total of 182-6 certainly gave them something to defend but, on a pitch made for batting, they were left to rue scoring only three from a final over bowled by Matt Henry.
That restricted the tourists to a score some way short of what they had been in position to accrue when Kusal Mendis guided them to 122-1 in the 14th over.
After being sent in for the third time in the series, Mendis proceeded to make Daryl Mitchell pay for spilling a catch at first slip when the opener was on 10.
It was part of a streaky start from Sri Lanka that, with the ball swinging, saw them narrowly evade fielders on numerous occasions. But consecutive sixes from Mendis to end the fifth over got him going as the tourists ended the powerplay on 48-0.
Ish Sodhi made the breakthrough in the 10th over as Pathum Nissanka finally picked out a fielder, though this time he was unfortunate that Jimmy Neesham managed to snare an excellent diving catch in the deep.
Mendia took his side to 78-1 at the halfway mark and registered his half-century with the fourth of his six sixes, before Ben Lister deceived the opener with a slower delivery to dismiss him for 73 from 48.
Still well place on 133-2 with five overs to bat, any plans for a big finish were hindered when Adam Milne ran out Kusal Perera with an impressive direct hit at long on.
Lister (2-37) had a second with the slower ball in the 18th over before Henry tightened the clamps with a superb 20th, setting up another runout while ceding only two byes.
Sri Lanka would have been further frustrating by that stuttering finish after Seifert started swinging. He did get a little lucky in the sixth over, as Nuwanidu Fernando made a mess a mess of tough chance on the boundary, but in large it was a continuation of the clean hitting he displayed in Dunedin.
Chad Bowes, having been dropped one one in the first over, initially did well to feed the strike to his partner before sending a top edge sky high, a manner of dismissal becoming too familiar for the opener.
After the Black Caps advanced to 58-1 at the end of the powerplay, Seifert celebrated the quickest half-century of his career, coming from 26 balls. The opener’s timing was exemplary as he scored to all parts of the field, finding the fence with some innovative shots as New Zealand reached 95-1 at the halfway mark.
Tom Latham (31 off 23) proved an effective partner in an 84-run stand before falling in the 15th over, leaving the Black Caps needing 43 from the final five overs.
Seifert soon surpassed his previous best of 84 with consecutive boundaries. But with the target and a possible century is sight, the batsman slapped a slower ball from Pramod Madushan straight to cover, forced to depart with the job not quite done.
The difficulty of that task was enhanced by an 18th over from Kasun Rajitha that brought six runs and a 19th from Madushan that ceded seven. Mark Chapman’s booming six from the first ball of Kumara’s closing over had the hosts within sight, but the next three deliveries saw him fall, Neesham run out and Mitchell depart.+
Fortunately for New Zealand, Ravindra remained cool on the only delivery he faced, ending the summer in successful style.
By Kris Shannon