India reached the World Cup final by holding off New Zealand on a memorable night in Mumbai that included Virat Kohli’s record-breaking 50th one-day international century.
Superstar Kohli moved clear of his legendary former team-mate Sachin Tendulkar’s hundred tally as India piled up 397-4.
But New Zealand threatened to spoil the hosts’ party.
Daryl Mitchell scored a sublime century of his own and put on 181 runs from 149 balls with skipper Kane Williamson to quieten the febrile home support and give the Black Caps a shot at an improbable victory.
India were feeling the pressure with the Black Caps on 220-2, when Mohammed Shami removed Williamson for 69 and Tom Latham for a two-ball duck in the 33rd over.
Glenn Phillips’ 41 from 33 kept New Zealand in with an outside chance but he holed out and Mitchell followed for 134 to Shami.
Fast bowler Shami ended with incredible figures of 7-57 – the best for India in ODIs – and New Zealand were ultimately bowled out for 327, leaving them 70 runs short.
Earlier, Kohli effortlessly made 117 from 113 balls, while Shreyas Iyer scored the game’s fastest century – a 70-ball 105, with eight sixes.
India, chasing their first World Cup title since winning on home soil in 2011, will play Australia or South Africa in Sunday’s final in Ahmedabad in what promises to be a remarkable occasion.
The second semi-final is in Kolkata on Thursday from 04:30h. (BBC Sport)