Virat Kohli masterminds chase as India beat New Zealand despite Daryl Mitchell ton
Kohli could not complete the chase but was instrumental again as India reached a victory target of 274 with two overs to spare to maintain their unbeaten run in the tournament.
Their fifth successive win put the twice champions at the top of the table followed by 2019 runners-up New Zealand who tasted their first defeat at this year's tournament.
Mitchell smashed a rapid hundred but New Zealand did not get the late flourish and were all out for 273 in exactly 50 overs.
Mitchell forged a 159-run partnership with Rachin Ravindra (75) before the Indian bowlers applied the brake.
Mohammed Shami led India's spirited bowling effort, claiming 5-54 in his first match of the tournament which earned him the player-of-the-match award.
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.
"Good start to the tournament but our job is half done," Rohit said of India's perfect start to the campaign.
"At one stage, New Zealand put up a big partnership there... we have to give credit to the bowlers in the back end."
Electing to field, India dominated the powerplay segment, reducing New Zealand to 34-2, but subsequently dropped three catches to let their opponents off the hook.
Ravindra's was an eventful knock as he survived two lbw reviews and even had a caught-behind decision against him overturned.
A genuine reprieve came when Ravindra Jadeja, a safe catcher otherwise, dropped a sitter at backward point.
Mitchell also had his share of good fortune.
KL Rahul dropped him behind the stumps when on 59 and later Jasprit Bumrah floored a regulation catch in the deep.
Once Shami had dismissed Ravindra, New Zealand, cruising at 205-3 in the 37th over, collapsed in a heap, managing 54 runs in the last 10 overs and losing six wickets.
Rohit gave India a flying start, smacking four sixes in his effortless knock, as the hosts raced to 71 for no loss in 10 overs.
Lockie Ferguson broke the stand with a wide delivery which Rohit dragged on to his stumps. In his next over, Ferguson cut short Shubman Gill's promising knock of 26.
India reached 100-2 in the 15th over when heavy fog caused low visibility, forcing the players off the pitch for a while.
After play resumed, Trent Boult bounced out Shreyas Iyer (33) and New Zealand dragged themselves back into the contest with the wickets of KL Rahul and Suryakumar Yadav.
Kohli and Jadeja, who made 39 not out, then combined in a crucial stand to set up India's victory.
Sensing a second successive century, Kohli refused a single but holed out in the very next ball with India on the verge of victory.
"Towards the back 10 overs, we didn't quite capitalise on the position we were in but credit for India for how they bowled," New Zealand captain Tom Latham said.
"We probably left a few out there."