Corey Anderson smashed an unbeaten 68 off 40 balls to take New Zealand to 292 for seven after being asked to bat first.
The Indian batting failed to get going and they were bowled out for to 268 in 48.4 overs. Barring Kohli and captain Mahendra Singh Dhoni (40), the middle-order was found wanting.
Opener ROhit Sharma, who failed miserably in South Africa, looked at sea in foreign conditions once again and was dismissed for three after facing 23 balls.
His partner Shikhar Dhawan (32) fared much better, falling to Anderson in the 19th over.
Both Ajinkya Rahane (7) and Suresh Raina (18) failed to make a real contribution and the visitors found themselves in a spot of bother at 129 for four in 28.2 overs.
Kohli and Dhoni combined well and notched a 95-run stand for the fifth wicket, taking India closer to the target.
With Stuart Binny knocking on the doors, Ravindra Jadeja (0) didn’t do himself any favours with a dismal show with the bat.
Kohli hit a few lusty blows to keep India’s hopes alive but his fall in the 45th over ended all chances of an Indian win.
Some clean hitting by Ravichandran Ashwin (12) and Mohammad Shami(7 not out) managed to take India close but it was never enough.
Earlier, after losing openers Martin Guptill (8) and Jesse Ryder (18) cheaply, Kane Williamson crafted the innings initially, stroking his way to 71 off 88 balls, guiding New Zealand to safety.
Mohammad Shami, on his first tour to New Zealand, bowled brilliantly, removing both openers before dismissing the dangerous Ross Taylor and Nathan McCullum (2).
Williamson, along with former captain Ross Taylor (55), steadied the ship with a patient 121-run stand for the third wicket.
The hosts lost Williamson just before the final powerplay, paving the way for former opener and captain Brendon McCullum (30).
Shami dismissed Taylor early in the powerplay but New Zealand still managed to score 41 off the five overs.
That set the stage for Anderson, who recently displaced Pakistan’s Shahid Afridi as the holder of the record for the fastest hundred in ODIs.
Anderson bludgeoned his way to a half-century in just 30 balls. New Zealand benefited immensely as Anderson and Luke Ronchi (30 off 18 balls) combined well to rack up 50 runs off just five overs.
To their credit, however, India managed to limit the damage by bowling full-length balls well outside the off-stump. The tactic worked in keeping Anderson quiet in the fag end of the innings.
Bhuvneshwar Kumar, who picked up a solitary wicket, was the most economical of the Indian bowlers but Shami was the pick of the bowlers, taking four wickets for 55 runs in his spell of nine overs.