In pursuit of 293, India's chase was well controlled by Kohli but his depature for 123 (111 balls, 11x4, 2x6) as the sixth wicket in the 45th over, put paid to winning chance.
India were bowled out for 268 in 48.4 overs. Left-arm paceman Mitchell McClenaghan took 4/68 in 10 overs.
When it comes to batting second, Kohli has always been the man for India. Whenever he scored a ton, India had won. It had happened 11 times before but not today.
Kohli's 18th ODI century in his 126th match lit up the McLean Park but the hosts' bowlers overcame his masterclass to go 1-0 up in the five-match series.
With today's knock, Kohli moved to joint ninth with Mark Waugh in most tons in ODIs. Also, he surpassed Gautam Gambhir in ODI runs (5,238).
When MS Dhoni and Kohli were batting together, India had hopes of winning. But Dhoni (40) and Ravindra Jadeja with 3-ball duck, departed in the same over - 43rd and it was too much for the tail-enders.
Suresh Raina (18) once again fell to a short ball while Shikhar Dhawan (32) too was consumed by a bouncer. Rohit Sharma struggled to 3 off 23 balls. Ajinkya Rahane could make only 7.
The second ODI is in Hamilton on January 22 (Wednesday).
NZ post 292/7
Half centuries from Kane Williamson (71, 88 balls, 7x4), Ross Taylor (55, 82 balls, 1x4) and Corey Anderson (68 not out, 40 balls, 3x4, 4x6) lifted the hosts to 292/7 in 50 overs.
There were useful contributions from Luke Ronchi (30, 18 balls, 2x4, 2x6) and captain Brendon McCullum (30, 25 balls, 4x4).
The star of New Zealand batting was left-hander Anderson. One of his four huge sixes - off Ishant Sharma, landed on the stadium roof, travelling 122 metres.
New Zealand were on course for more than 300 but Indian bowlers came back strongly in the final five overs, conceding only 36.
Mohammad Shami was India's most successful bowler with four wickets. Ishant was yet again expensive, going for 72 runs in 9 overs. He took one wicket.
The most economical of Indians was Bhuvneshwar Kumar who was miserly in his 10 overs with figures of 1/38.
India started off well having the hosts 32/2 in the 8th over. However, Taylor and Williamson's 121-run third wicket association gave a perfect platform for the late order.
MS Dhoni completed 300 dismissals in ODIs when he caught Taylor off Shami.
Anderson, who recently smashed the fastest ODI ton in 36 balls, yet again displayed his aggressive batting. His knock contained 3 fours and 4 sixes.
Offspinner R Ashwin went wicketless with 0/52 in 10 overs.
India captain Dhoni won the toss and elected to bowl.
India have gone in with three fast bowlers - Ishant Sharma, Bhuvneshwar Kumar and Mohammad Shami. The spin department will be taken care of by R Ashwin and Ravindra Jadeja.
The hosts too have three pacemen in Adam Milne, Tim Southee and Mitchell McClenaghan. Nathan McCullum is the spinner.
In the build-up to the series, the talk in New Zealand has been around their fast bowlers looking to test India batsmen. It will be interesting to see how the contest will be.
In recent times, Indian bowlers have been come in for criticism for giving away too many runs. They will again be in the spotlight today and through the rest of the series.
New Zealand: Brendon McCullum (captain), Corey Anderson, Martin Guptill, Mitchell McClenaghan, Nathan McCullum, Adam Milne, Luke Ronchi (wicketkeeper), Jesse Ryder, Tim Southee, Ross Taylor and Kane Williamson.
India: MS Dhoni (captain and wicketkeeper), Shikhar Dhawan, Rohit Sharma, Virat Kohli, Ajinkya Rahane, Suresh Raina, Ravindra Jadeja, R Ashwin, Ishant Sharma, Mohammad Shami, Bhuvneshwar Kumar.