England, who won the 50-over World Cup on home soil in 2019, can now become the first team to hold both global trophies in white-ball cricket when they meet Pakistan in Sunday's final at the Melbourne Cricket Ground.
They have rehabilitated opener Hales and skipper Buttler to thank as the pair chased down 169 for victory with four overs to spare, silencing a huge crowd of India supporters on Thursday.
Hales finished on 86 not out from 47 balls, and Buttler, who was unbeaten on a 49-ball 80, completed the statement win in style, blasting paceman Mohammed Shami over his head for six.
"It certainly feels (a perfect match) against a top quality opposition," said Buttler.
"We came in very excited and there was a good feel around the group ... I thought everyone, from one to 11, stood up today."
Put into bat after Buttler won the toss, Rohit Sharma's India started slowly under tight English bowling, and it was left to Hardik Pandya (63) and Virat Kohli (50) to mount a rescue, pushing them to 168 for six.
The total seemed a tad below par and soon looked piffling as Hales and Buttler went to work, the pair blasting 23 boundaries between them.
Their 170-run stand was the biggest opening partnership in T20 World Cup history and England's biggest for any wicket at the tournament.
It set up a mouth-watering duel against Pakistan, 30 years on from the teams' 50-over World Cup final in 1992 at the MCG which the south Asians won.
For Player-of-the-Match Hales, it was a night of redemption, having missed out on England's 2019 triumph after a recreational drug scandal.
His exile from the England setup lasted more than three years and he was only called up to the squad after Jonny Bairstow was injured in a freak golf accident.
"This will be right up there for sure," said Hales, who has played plenty of T20 in Australia in the Big Bash League.
"It's a special feeling in a country that I love and I've spent a lot of time here, so tonight is one of the best nights of my career."
England had to make changes for the semi-final, with pace spearhead Mark Wood and number three batsman Dawid Malan out injured.
Replacement seamer Chris Jordan took 3-43, capturing the key wicket of Kohli, while spinner Adil Rashid took a miserly 1-20 from his four overs.
Even at number three, Malan's stand-in Phil Salt could not get a bat but he took the catch that dismissed India's master blaster Suryakumar Yadav for 14 off Rashid.
India face a period of introspection, having failed to set up a decider against arch-rivals Pakistan that their massive fan base had clamoured for.
"It's pretty disappointing how we turned up today," said skipper Rohit.
"I thought we still batted pretty well at the back end to get to that score, but we were not good enough with the ball.
"It's all about executing your plans. If you can't execute, you'd find yourself in trouble."