World Cup match was played at Old Trafford, Manchester
New Zealand stunned India to reach their second successive World Cup final as they survived Ravindra Jadeja's late heroics to clinch a thrilling 18-run win at Old Trafford on Wednesday.
It was a superb display by the underdog Black Caps, who came into the match on the back of three straight defeats by Pakistan, Australia and England and only qualified for the semi-finals on net run-rate, while India topped the 10-team group stage.
New Zealand will face the winners of Thursday's second semi-final between Australia and hosts England in Sunday's title match at Lord's.
"We had to ask a lot of questions. We knew if we created pressure we'd have a chance because it wasn't an easy pitch to score on," New Zealand's man-of-the-match Matt Henry said.
"We pride ourselves on always giving ourselves a chance. They have world-class finishers and we knew we'd have to bowl them out to win. It's special to be going to Lord's on Sunday."
Two-time world champions India lost key batsmen Rohit Sharma, Virat Kohli and KL Rahul for just one run each.
They slumped to five for three in pursuit of a target of 240 and were 24 for four when Dinesh Karthik was out.
New Zealand pacemen Henry (three for 37) and Trent Boult (two for 42) did the damage with the new ball.
Shell-shocked India captain Kohli admitted his team had paid the price for the dismal start to their innings.
"It's tough, 45 minutes of bad cricket put you out of the tournament. It's hard to come to terms with but New Zealand deserves it. They put us under pressure and came through in the key moments," Kohli said.
"Our shot selection could've been better but otherwise we played a good brand of cricket and I'm proud of the way we played."
India, one of the pre-tournament favourites, were all but beaten at 92 for six when Jadeja came in to bat alongside MS Dhoni.
The pair gave India hope during a World Cup record seventh-wicket stand of 116, all-rounder Jadeja boldly leading the way with 77.
Jadeja hit well-struck sixes off both Jimmy Neesham and left-arm spinner Mitchell Santner during a 39-ball fifty.
With 10 overs left, India were 150 for six and needing a further 90 runs off the final 60 balls of the innings.
Jadeja got them closer with a superb straight six off fast bowler Lockie Ferguson and, with five overs left, the target was down to 52.
But left-hander Jadeja's 59-ball innings, featuring four fours and four sixes, ended when he skyed Boult to New Zealand captain Kane Williamson.
With India needing 31 off two overs, Dhoni uppercut Ferguson for six to the delight of the massed ranks of India fans in the crowd.
But going for a second run to keep the strike, the 38-year-old Dhoni, India's 2011 World Cup-winning captain, was just run out by Martin Guptill's direct hit for 50 off 72 balls.
With 23 required off the last six balls, tailender Yuzvendra Chahal glanced Neesham for four.
But the match finished with three balls to spare when Chahal edged to wicketkeeper Tom Latham, a review confirming his dismissal and New Zealand's shock victory.
Rohit Sharma began the procession of top-order dismissals when he was caught behind off Henry.
Kohli fell next, leg before wicket to a superb in-swinger from left-arm pacer Trent Boult.
India were then five for three when Rahul was brilliantly caught by a diving Latham after edging Henry.
Neesham then held a brilliant superb one-handed catch at backward point to dismiss Karthik off Henry.
Rishabh Pant holed out for 32 when he was caught at deep midwicket by Colin de Grandhomme following a lofted sweep off Santner, leaving India slipping towards an unexpected exit.
Earlier, New Zealand added 28 runs in the remaining 23 balls of their innings to finish on 239-8 after rain had stopped play on Tuesday.
Ross Taylor, who resumed on 67 not out, top-scored with 74 after Williamson had made a masterly 67 in awkward conditions.