Neesham, recalled after 18 months in the wilderness as New Zealand look to trial all-rounder options before the World Cup, flayed the Sri Lankan bowling with an unbeaten 47 off just 13 deliveries.
He then took three for 38 to share the spotlight with man-of-the-match Martin Guptill who set the New Zealand innings alight with 138 off 139 deliveries.
On a placid wicket favouring the batsman and on a ground with short boundaries, Kusal Perera also reached three figures with 102 for Sri Lanka while Niroshan Dickwella added 76.
But in reply to New Zealand’s 371 for seven, Sri Lanka were all out for 326 with six balls remaining.
Free-scoring Sri Lankan openers Dickwella and Danushka Gunathilaka had been on track to chase down the target when they reached 119 off 17 overs.
But when Neesham came into the attack he had Gunathilaka caught behind for 43 and Dickwella bowled in the space of four deliveries.
Kusal Mendis and Perera smacked 52 off 50 deliveries until an Ish Sodhi googly removed Mendis for 18.
Neesham returned for his second spell to dismiss Dinesh Chandimal for 10, before more success for spinner Sodhi who had Asela Gunaratne caught in the deep for 11.
Trent Boult eventually dismissed the stubborn Perera as Sri Lanka’s last five wickets fell for 53 runs.
New Zealand had elected to bat first and after the early loss of Colin Munro, Guptill and Kane Williamson put on 163 for the second wicket.
Guptill cracked five sixes and 11 fours to celebrate his return to the New Zealand side with his 14th ODI century in his 160th match, becoming the ninth-fastest player to pass 6,000 runs in the format.
After Williamson was bowled by Nuwan Pradeep for 76, Ross Taylor added a quick 54 off 37 balls before Neesham’s closing salvo.
On a day not made for bowlers, Pradeep returned the best figures for Sri Lanka with two for 72.
The second match in the three-match series is in Tauranga on Saturday. (Courtesy AFP)