Left-arm spinners Kuldeep Yadav and Axar Patel took three wickets apiece as India thrashed defending champions England by 68 runs in Guyana on Thursday to set up a T20 World Cup final against South Africa.
England, set a challenging target of 172, slumped to 103 all out inside 17 overs, wrist spinner Kuldeep finishing with figures of 3-19 and the orthodox Patel 3-23.
India, bidding for their first major title since the 2013 Champions Trophy, will now play South Africa -- also unbeaten at this tournament after a nine-wicket hammering of Afghanistan in their semi-final -- in Saturday's final in Barbados.
The Kensington Oval clash will also be India's second appearance in successive global showpiece games after they lost on home soil to Australia in last year's 50-over World Cup final.
"It's very satisfying to win this game," said India skipper Rohit Sharma after his team gained revenge for a humiliating 10-wicket loss to England in the semi-finals of the 2022 T20 World Cup.
"We worked really hard as a unit. To win like that was a great effort from everybody."
Rohit laid the foundations by top-scoring with 57 in a total of 171-7 after his side were somewhat surprisingly sent into bat by England skipper Jos Buttler.
It was the opener's third fifty of the tournament and second in as many games following his blistering 92 against Australia.
India were 40-2 in the powerplay after Virat Kohli (nine) and Rishabh Pant (four) both fell cheaply.
But a third-wicket stand of 73 between Rohit and Suryakumar Yadav (47), spanning a rain delay of over an hour, turned the tide.
Patel, the player of the match, said: "I knew that the wicket was stopping and had something for the bowlers...Our batters told us the pitch wasn't easy to hit the ball. We felt it (171) was a good total."
Defeat meant the only Test side that England had beaten at this event were co-hosts the West Indies, with the title-holders also losing to Australia and South Africa.
"India outplayed us, certainly," said Buttler. "We let them maybe get 20-25 too many (runs) on a challenging surface that they played well on. They fully deserved to win.
"They've got some fantastic spinners. Our two (Adil Rashid and Liam Livingstone) bowled well but in hindsight, probably should've bowled Moeen (Ali) in our innings with the way spin was playing.
"But with a good score and their brilliant bowling attack, it was always going to be a tough chase.
Buttler launched England's reply with a brisk 23. When he attempted to reverse sweep Patel's first ball, however, he clipped a gentle catch off the toe-end of the bat to wicketkeeper Pant.
Fellow opener Phil Salt was then clean bowled by Jasprit Bumrah's well-disguised slower ball. England then saw 34-2 become 35-3 when Patel bowled dangerman Jonny Bairstow for a duck.
Moeen was then stumped by Pant and when Sam Curran was lbw to Kuldeep, England were in dire straits at 49-5 in the ninth over.
Wickets continued to tumble and when Livingstone, the last of England's specialist batsmen, was run out for 11 after a dreadful mix-up with Jofra Archer, England were all but beaten at 86-8.
Archer struck a couple of defiant sixes but Bumrah ended the match when he had the England paceman lbw for 21 with a low full toss.