Australia's Twenty20 World Cup campaign has ended in extraordinary fashion after Big Bash League hero Rashid Khan lifted Afghanistan to an historic semi-final appearance.
After losing to India by 24 runs, Australia needed Bangladesh to defeat Afghanistan, but not by more than 45 balls to spare, to progress to the last four.
In a bizarre match full of brief rain delays and Gulbadin Naib comically faking an injury to waste time to aid Afghanistan, star spinner Khan was the hero in setting up a dramatic eight-run win on Duckworth-Lewis.
It comes just two days after Afghanistan scored a rousing upset of Australia to put them in the box seat to qualify for a World Cup semi-final for the first time.
Bangladesh opener Litton Das threatened to cruel Afghanistan's dream, carrying his bat with an unbeaten 54 in the Tigers' total of 105 chasing a revised target of 114.
But Adelaide Strikers star Khan (4-23) and Naveen-ul-Haq (4-26) made sure Afghanistan didn't fall short of the semi-finals as they did at last year's ODI World Cup.
"It's something like a dream for us as a team being in the semi-finals," said Khan, who was hoisted around the ground by his teammates in celebration.
"I'm sure it's going to be a massive celebration back home and it's a big achievement for us.
"The country would be very proud of us and I'm so happy the way we have delivered as a team."
Earlier, captain Rohit Sharma smashed 92 from 41 balls to help India to 5-205 in St Lucia, before Travis Head's 76 could only get Australia to 7-181 in reply.
"C'mon Bangladesh," captain Mitch Marsh quipped after Australia's earlier loss.
"... India got the better of us. Ultimately they were the better team."
Australia were always on the back foot at Daren Sammy Stadium.
Rohit took charge when he helped crunch 29 runs from the third over of the game off Mitchell Starc, after the left-armer was recalled in place of spinner Ashton Agar.
Starc (2-45) wasn't alone in copping punishment, with Pat Cummins (0-48), Adam Zampa (0-41) and Marcus Stoinis (2-56) all going at more than 10 an over.
In a brutal display of hitting, Rohit smashed eight sixes and seven fours, clearing the boundary over cover and mid-wicket with a mixture of brilliant timing and sheer power.
Rohit's 19-ball 50 marked the fastest ever against Australia, with his dominance clear in the fact India's team score was 1-52 when he passed the milestone.
Only Josh Hazlewood was able to slow India down, appearing as if he was bowling on a different pitch with his 1-14 after removing Virat Kohli for a duck early.
Australia lost an edging David Warner in the first over of the chase for six, in what turned out to be the veteran opener's international swansong.
Mitch Marsh offered hope of a captain's knock with 37 from 28 balls, but the match swung when he was superbly caught by a jumping Axar Patel on the boundary.
And while Head threatened to repeat his ODI World Cup final heroics against India from last year with powerful drives and pull shots, he was eventually caught trying to take on Jasprit Bumrah.
After the equation was at one stage 82 from eight, Australia lost 5-54 from that point on as none of their middle order below No.4 Maxwell fired.
"We had belief when you think about who we had in the changerooms," Marsh said.
"If you can keep it at 10 (needed an over) for as long as you possibly can, you're well and truly in the game.
"But India had some class bowlers at the end that were too good for us."
Undefeated India will now face England in the second semi-final, after being knocked out by the defending champions at the same stage in 2022.
Afghanistan will take on perennial semi-finalists South Africa for a spot in the decider.