Matt Henry, not picked for the World Cup, was the pick of the New Zealand bowlers, taking two for 34 off 9.4 overs.
New Zealand's innings was a mix, in which the bad far outweighed the good.
Captain Brendon McCullum slapping an entertaining 117, his fifth ODI century, but the innings was marred later by four run outs, including three in 10 balls.
The effect was New Zealand completely butchered the chance for a sizeable score in good batting conditions on a warm afternoon.
McCullum got the measure of Sri Lanka's attack from the start, striking five sixes and 12 fours in his innings.
The boundaries at Seddon Park aren't long enough when McCullum is in his current rich form.
He faced 99 balls but with Ross Taylor out of sorts, 34 off 69 balls, it fell to the middle order to press on. They didn't.
Four wickets fell for 14 in 29 balls. The five-over power play produced three for 15 as New Zealand folded.
Dan Vettori, Luke Ronchi - without facing a ball - Corey Anderson and Nathan McCullum all fell to run outs, with muddled running and complete lack of communication letting them down.
There were two wickets apiece for spinners Rangana Herath and Sachithra Senanayake while Dilshan and Jeevan Mendis did their part in putting a cramp on New Zealand.
The third ODI is at Eden Park on Saturday.
SCOREBOARD