India's Virat Kohli struck a record 50th ODI hundred and fast bowler Mohammed Shami's seven-wicket haul proved equally crucial as the unbeaten hosts overpowered New Zealand by 70 runs to march into the Cricket World Cup final.
Kohli's 117 and a blistering 105 from Shreyas Iyer helped India post 397 for four wickets after they won the toss at the Wankhede Stadium, where the hosts had lifted their second and last 50-over World Cup trophy in 2011.
In reply, New Zealand, who beat India at the same stage in the 2019 tournament, were bundled out for 327 in the 49th over with Daryl Mitchell's excellent innings of 134 proving to be in vain.
Australia and South Africa meet in the second semi-final at Kolkata's Eden Gardens on Thursday, with the final on Sunday in Ahmedabad.
"𝗪𝗛𝗔𝗧 𝗔 𝗖𝗥𝗜𝗖𝗞𝗘𝗧𝗘𝗥, 𝗪𝗛𝗔𝗧 𝗔𝗡 𝗜𝗠𝗣𝗔𝗖𝗧!"
— Sky Sports Cricket (@SkyCricket) November 15, 2023
Seven semi-final wickets for Shami ✅
23 wickets at #CWC23 ✅
Not bad for a man who wasn't in the team at the start of the tournament! 🫡 pic.twitter.com/YB8AQbnuPQ
Mitchell added 181 for the third wicket with Kane Williamson to keep the Black Caps firmly in the chase but Shami, who sent back both openers, returned to dismiss the New Zealand captain and Tom Latham in one over to put India on top.
The right-handed Mitchell suffered cramps after getting past his hundred but continued to plunder runs with Glenn Phillips during a 75-run stand before the latter fell for a 33-ball 41.
The target ultimately proved too steep, however, as the Indian juggernaut rolled on for their 10th win in as many matches in the 50-over showpiece.
Shami finished with figures of seven for 57, his third five-wicket haul in the tournament.
Kohli's knock, which came off 113 balls, gave him the record for the highest number of centuries in the 50-overs format of the game, taking him past Sachin Tendulkar, the Indian batting great who was in the stands to applaud the feat.
After scampering two runs off fast bowler Lockie Ferguson to get to his mark, Kohli took off his helmet and bowed to the stands where television cameras showed Tendulkar and former England football captain David Beckham leading his ovation.
The 35-year-old hit nine fours and two sixes before holing out in the deep off fast bowler Tim Southee, who took three wickets for 100.
Iyer's blistering 105, which came off 70 balls and was studded with four fours and eight sixes, provided the late fireworks for India.
India captain Rohit Sharma, who made 47, gave the hosts a rollicking start in a 71-run opening stand with Shubman Gill. Gill retired hurt due to leg cramps but returned to resume his innings and finished unbeaten on 80.