Virat Kohli scored a stunning unbeaten 82 off only 51 balls to send India through to the World Twenty20 semi-finals at the expense of Australia.
India appeared to be struggling on 49 for three in pursuit of 161 but Kohli took control before accelerating in the closing overs to lead the hosts to a six-wicket win with five balls to spare.
Shane Watson scored 18 not out and took two wickets for 23 runs but he could not prevent Australia from falling to a defeat which ends his long international career.
It was going to plan for Steven Smith's side after they posted 160 for six - built on Aaron Finch's 43 - and took three early wickets in India's reply.
Shikhar Dhawan got India up and running with a pair of boundaries but he was caught pulling Nathan Coulter-Nile and opening partner Rohit Sharma was bowled by Watson soon after.
Watson, who earlier this week announced his retirement from international cricket, then had Suresh Raina caught behind in the eighth over to leave India rocking.
Yuvraj Singh provided support to Kohli despite struggling with an injury but when he was well caught by Watson off the bowling of James Faulkner India needed 67 off six overs.
That became 39 from 18 balls but crucially India had Kohli and Mahendra Singh Dhoni at the crease and the former swung the contest in his side's favour by hitting two fours and a six off successive Faulkner deliveries.
Four more Kohli fours off Coulter-Nile in the penultimate over left India on the brink and Dhoni completed a victory which set up a semi-final meeting with West Indies on Thursday.
Usman Khawaja earlier hit five fours in the first two overs to get Australia off to a flyer after winning the toss and Finch took his opening partner's lead by smashing Ravichandran Ashwin for two sixes in a 22-run over.
Khawaja helped Australia pass 50 before he was caught behind off Ashish Nehra for 26 in the fifth over.
India pulled the innings back following the breakthrough and they were celebrating a second wicket when David Warner was stumped after being deceived by a turning Ashwin delivery.
Yuvraj was thrown the ball for the first time in the tournament and he repaid his captain's faith by inducing an edge from Smith with his opening delivery.
That left Australia 74 for three in the 10th over and they continued to make sedate progress until Finch departed after hitting a short Hardik Pandya delivery to Dhawan at deep midwicket.
Glenn Maxwell got Australia going again with a four and a six from the final two balls of the 16th over but he was bowled by Jasprit Bumrah in the next for 31.
India bowled tidily at the end and looked set to restrict Australia to a sub-150 score after Pandya had Faulkner caught in the deep at the start of the final over.
But Watson hit a streaky four and Peter Nevill smashed two boundaries off the final two balls of the innings to get Australia up to a competitive total.