Muttiah Muralitharan took 4-23 as New Zealand were bowled out in the final over of their innings for 165.
Lankan batsmen, chase the small albeit tempting target with ease, with 14 overs remaining. Kiwi bowlers, so impressive in Monday's win over South Africa, also in Mumbai, lacked a penetrating edge.
Upul Tharanga (56) and Mahela Jayawardene (48) were able to put on 89 for the second wicket and were rarely troubled during their partnership. They both fell in the same Jeetan Patel's over to allow Kumar Sangakkara and Marvan Atapattu to finish the task.
Muralitharan had earlier bowled with great skill on a wicket held together with synthetic adhesive, but New Zealand helped him out by producing a feeble batting performance. They were 118-9 at one before Daniel Vettori's unbeaten 46 gave them respectability.
Nathan Astle also did his bit with the bat, hitting 42 before sweeping Muralitharan to deep square leg.
But the rest of the top seven all failed on a wicket that was largely blameless.
New Zealand won the toss and elected to bat first - hoping to find the same formula for success that worked against South Africa.
Finding good swing with the new ball, Chaminda Vaas removed Stephen Fleming lbw for 13 to get the ball rolling for the Sri Lankans. Lou Vincent's misjudged swipe at Farveez Maharoof made it 37-2 before Hamish Marshall cut Lasith Malinga to backward point.
After Sanath Jayasuriya had removed Scott Styris, Murali took his four wickets, the best of the bunch a doosra that bowled Jacob Oram behind his legs.
When Jayasuriya snared Shane Bond, the match looked hopelessly one-sided. But Vettori hit three boundaries off as many balls in Vaas' last over, which cost 19, including a deft leg-glance. Patel fell four balls before the end, but the last-wicket stand of 47, easily the best of the innings, gave New Zealand some hope.
That optimism rapidly vanished during Shane Bond's spell. The fit-again paceman, replacing James Franklin in the starting line-up, bowled wides, noballs and half volleys to disappear for 36 in four overs.
He was unlucky at times, but Tharanga and Sanath Jayasuriya dealt with the loose stuff and put on 45 in six overs.
Kyle Mills had Jayasuriya caught behind, but Tharanga and Jayawardene quickly got on top of the bowling and that was that.
Both teams now have a win each from two games.