Mumbai: West Indies will meet England in the final of the World Twenty20 on Sunday after stunning hosts India with a seven-wicket win in the semi-final.
India looked in complete control after Virat Kohli's unbeaten 89 took them to 192-2 and Chris Gayle fell for five.
But Lendl Simmons, who was twice caught off no-balls and held on the boundary only for Ravindra Jadeja to step on the rope, clubbed 82 from 51 balls.
Then Andre Russell won it with a six with two balls to spare in Mumbai.
West Indies follow their women's team into the final after they defeated New Zealand earlier on Thursday.
The meeting with England in Kolkata on Sunday will see a two-time World T20 champion crowned for the first time.
Simmons, who had to pull out of the West Indies squad before the tournament began because of an injury, only arrived in Mumbai on Tuesday as a replacement for Andre Fletcher.
When he got to the crease at the end of the third over, West Indies already looked out of the chase after opener Gayle was bowled by Jasprit Bumrah and Marlon Samuels was tamely caught at cover.
Three times he should have been out caught. Ravichandran Ashwin overstepped when he was caught on 18 and Hardik Pandya did the same at 50, the latter being heaved for six from the resulting free hit.
Then, on 69, Simmons was held on the long-on boundary, only for Jadeja to step on the rope as he was trying to offload the ball to Kohli.
Reprieved, Simmons slapped boundaries through the off side and clubbed five sixes straight and to the leg, sharing 97 with Johnson Charles and an unbroken 80 with Russell.
It was an astonishing chase by the West Indies, their second highest in T20 internationals and the second largest by any side to defeat India.
While India grew their total by breathlessly scampering between the wickets, West Indies pummelled the boundary on the same run-filled Wankhede Stadium at which England made 230 to beat South Africa.
As West Indies, champions in 2012, crashed 20 fours and 11 sixes, the previously raucous Mumbai crowd fell increasingly silent.
India, the pre-tournament favourites, could have gone out in the group stage and, when the semi-final came, their bowlers wilted.
But Kohli, who should have been run out by Dwayne Bravo when he was on only one, did not deserve to end up on the losing side.
The right-hander's innings was another T20 masterclass, full of orthodox cricket strokes and brilliant running between the wickets, taking his tournament record to 273 runs at an average of 136.50.
Then, when India were being dismantled in the field, Kohli was thrown the ball and had Charles caught at long-off with his first delivery.
He was even given the responsibility of bowling the final over when only eight were needed. This time, there was too much even for Kohli to do as Russell heaved the winning maximum over mid-wicket.
Brief scores
India - 192 for 2 (Kohli 89*, Rohit 43, Rahane 40)
West Indies - 196 for 3 (Simmons 83*, Charles 52, Russell 43*)
Result - West Indies won by 7 wickets
MOM - Lendl Simmons (West Indies)