New Zealand reached the World Cup final as they produced the bowling performance of the tournament to edge out a crestfallen India by 18 runs in a sensational match at Old Trafford.
India, chasing 240 to win, were reduced to 24-4 and 92-6 before Ravindra Jadeja and MS Dhoni produced a 116-run partnership to drag the 2011 winners back in contention.
Jadeja in particular was superb but, with 37 runs needed from the final 18 balls, Jadeja hit Trent Boult high into the air and to Black Caps captain Kane Williamson to fall for 77.
Dhoni struck a six off the first ball of the 48th over but was then superbly run out by Martin Guptill to realistically end India's slim chances.
The final wicket – last man Yuzvendra Chahal edging behind – was greeted with shock by an India heavy crowd, as New Zealand gathered into a huddle.
Make no mistake, this was a stunning, surprising, unexpected win by New Zealand, with India heavily tipped from the start to win the tournament.
Boult swung the ball, Matt Henry and Lockie Ferguson bowled with pace and Guptill and Jimmy Neesham produced two outstanding bits of fielding to put New Zealand into the final.
They will play either England or Australia in Sunday's final, with those two sides set to meet at Edgbaston on Thursday.
Going into a reserve day, this match could have been played out in front of an empty stadium – but that was not the case, with Old Trafford full of vibrant, noisy India fans.
With New Zealand adding 28 runs off 23 balls to reach 239-8 in their rain-affected 50 overs on Wednesday morning, India looked to be in the ascendency, but a brilliant start by the Kiwi bowlers soon put paid to that.
Boult and Henry were all over the batsmen; Rohit Sharma, the tournament's leading run-scorer, edged Henry behind before talismanic captain Virat Kohli was trapped lbw by Boult.
Kohli was visibly unhappy at the decision and reviewed it but the ball was shown to be hitting and Kohli stood, aghast, on the pitch before walking off.
India were in further trouble when KL Rahul nicked Henry through to wicketkeeper Tom Latham to leave them 5-3.
As is so often the case, when things are going one side's way, everything seems to stick in the hands. Neesham pulled off a superb, one-handed take at backward point to dismiss Dinesh Karthik and leave India reeling.
It is a credit to New Zealand that they kept their nerve in the final overs when Jadeja and Dhoni, one of the best finishers in the game, had the target down to a manageable total.
However, Williamson's superb catch to a steepling offering off Jadeja was the inspiration New Zealand needed. Guptill's run out a handful of deliveries later just showed what a sharp side this Black Caps team are.
And the idea of this bowling attack, at Lord's, with a slope to help the ball swing, will worry both England and Australia.
New Zealand captain Kane Williamson: "It's a different feeling to last time (2015). We've had to skin it over the round-robin, so it's been quite different.
"A lot of heart has been shown by the guys so far but we're keeping our feet on the ground.
"It was a great semi-final and we're happy to be on the right side of it."
New Zealand bowler Matt Henry: "We talked about just making sure we did the best we can and just taking it to them at the top of the innings. We wanted to create as much pressure as we could.
"We pride ourselves on always giving ourselves a chance. They have world-class finishers and they were very dangerous, we knew we'd have to bowl them out to win today.
"It's special to be going to Lord's on Sunday. Thank you to the fans today, the support has been brilliant."
New Zealand 239-8 (50 overs): Taylor 74, Williamson 67, B Kumar 3-43
India 221 all out (49.3 overs): Jadeja 77, Henry 3-37, Santner 2-34