Kohli's knock of 105 made up for lack of big contributions from other batsmen as India mustered a fighting total of 276 after being asked to bat first.
New Zealand could only manage 236 in reply after a strong display by the Indian slow bowlers.
Kohli, who scored a match-winning 118 in his previous one-day appearance at Visakhapatnam against Australia last month, continued with his fine form at No. 3.
He rotated the strike well and smashed some fine fours when the batting powerplay was taken in the 40th over. He was earlier involved in an 88-run stand for the third wicket with left-hander Yuvraj Singh.
Kohli reached his second consecutive century and fourth overall in one-dayers, with a four to third-man offseamer Kyle Mills.
Kohli's was a soft dismissal as he failed to keep down a slower delivery from McKay and Jamie How, fielding in the covers, took his third of four catches.
Singh struck seven fours in his 42 but was unable to work the ball around. He was caught behind off Tuffey, unable to capitalize on the cautious beginning that saw him score his first five runs off 23 deliveries.
India started well, but lost both openers relatively cheaply. Murali Vijay tried to pull Tuffey but only managed a top-edge for wicketkeeper Gareth Hopkins to take a high catch after the batsman had scored 29 off 32.
Gambhir played a casual shot off a delivery from McKay to give How an easy catch at point. Gambhir, leading the side after the selectors decided to rest several frontline players, made a run-a-ball 38.
India lost wickets at regular intervals in the face of some tight bowling and also slumped badly in the final stages to be dismissed in 49 overs.
Seamers Andy McKay (4-62), Kyle Mills (3-42) and Daryl Tuffey (2-56) kept pegging back India, but Kohli did well to keep one end going.
New Zealand had a good start, but some precize bowling by Munaf Patel and R. Ashwin stopped the run flow and added pressure on the batsmen.
New Zealand could not manage a boundary for nearly 12 overs starting from the 11th before captain Ross Taylor struck two consecutive sixes toward the square-leg boundary off Yusuf Pathan.
Taylor's 66 off 69 balls, in which he smashed three sixes and three fours, held together the middle-order but part-timer Yuvraj Singh came on to strike three crucial blows.
The left-arm spinner followed up on his useful knock earlier in the day by removing Kane Williamson, Scott Styris and Tuffey in the space of 23 runs, but Nathan McCullum and Mills prolonged the innings before both were dismissed by seamer Shantakumaran Sreesanth.
Singh finished with 3-43, Ashwin had figures of 3-50 and Sreesanth got 3-30.
New Zealand went in without regular captain Daniel Vettori, who was rested after a heavy workload in the preceding three-test series. Brendon McCullum was also out due to a sore back.
India is without regular captain Mahendra Singh Dhoni, Sachin Tendulkar, Virender Sehwag, Zaheer Khan and Harbhajan Singh, all of whom were not picked in the squad either because of injury concerns or to give them rest in the midst of a hectic season.
This is the first game of a five-match series. Jaipur, Baroda, Bangalore and Chennai will host the remaining matches.
India won the preceding three-match test series 1-0.
