Virat Kohli hit 95 as India chased down its target of 274 to beat New Zealand in a match between the only two unbeaten teams at the Cricket World Cup.
Tournament host India won by four wickets on Sunday after reaching its target with 12 balls left in Dharamsala, finishing at 274-6.
New Zealand were dismissed for 273 in 50 overs, with Daryl Mitchell making a rapid 130.
Kohli came close to tying the record for most one-day international (ODI) hundreds, held by countryman Sachin Tendulkar with 49.
Kohli went for a six to get the record – and clinch the victory – but was caught near the boundary.
It was India’s’ fifth straight win to open the tournament and they top the table. New Zealand are second after their first loss.
Electing to field, India removed both the openers early but were sloppy on the field, dropping three catches to let New Zealand off the hook.
Mitchell forged a 159-run partnership with Rachin Ravindra (75) and New Zealand, sitting pretty at 205-3 in the 37th over, looked poised for a 300-plus total before Indian bowlers applied the brake.
Mohammed Shami led that effort, claiming 5-54 in his first match of the tournament.
Skipper Rohit Sharma (46) led India’s rollicking start, but it was Kohli’s fourth 50-plus score in five innings that helped to inflict on New Zealand their first defeat of the tournament.
New Zealand have beaten England, the Netherlands, Bangladesh and Afghanistan while India have also notched up wins over Australia, Afghanistan, Pakistan and Bangladesh.
India’s star all-rounder Hardik Pandya was unavailable for the table-topping clash because of a left ankle injury sustained in his team’s previous game against Bangladesh in Pune. In his place, the hosts chose Suryakumar Yadav. India also brought in pacer Shami for bowling all-rounder Shardul Thakur.
New Zealand were unchanged from its previous win over Afghanistan in Chennai. Star batsman and skipper Kane Williamson is still unavailable because of a thumb injury, and Tom Latham led the side again in his absence.