Afghanistan reached the semi-finals of the Twenty20 World Cup with a dramatic eight-run victory over Bangladesh under the Duckworth Lewis System in St Vincent, joining India as the qualifiers from Group 1 and sending Australia home.
Bangladesh also had a chance to progress or send Australia through with a victory but the Afghans dismissed them for 105 to take the win they needed to set up a first World Cup semi-final against South Africa in Trinidad on Wednesday.
Afghanistan hopes were dented when they were restricted to a modest 115-5 but skipper Rashid Khan took 4-23 and Naveen-ul-Haq 4-26 in a defiant bowling effort that delivered victory.
The last few overs were high drama played out well past midnight local time with Bangladesh needing roughly a run a ball and the DLS calculations in case of more rain changing with every wicket and boundary.
Naveen delivered the coup de grace in the penultimate over by bowling Taskin Ahmed and trapping Mustafizur Rahman in front off consecutive balls, triggering tearful celebrations from his team mates.
India, who beat Australia by 24 runs earlier in St Lucia to leave the qualification hopes of the 2021 champions hanging by a thread, will take on title holders England in the second semi-final in Guyana on Thursday.
Rashid won the toss and elected to bat first, sending out the same team that stunned Australia at the same Arnos Vale Ground on Saturday to give themselves a shot at the semis.
Openers Rahmanullah Gurbaz and Ibrahim Zadran scored a third century partnership of the tournament to build the foundation for that upset and Bangladesh were desperate to separate them quickly.
The Bangladesh bowlers made scoring mighty hard as they combined for 66 dot balls over the innings but they were unable to break the partnership until the 11th over when it was worth 59 runs.
Rishad Hossain (3-26) did the damage by having Ibrahim caught on the offside for 18 and the leg spinner returned to remove Gurbaz for 43 as Afghanistan collapsed from 84-1 to 93-5 in 11 balls.
Afghan skipper Rashid rallied with three sixes in his 10-ball 19 and was so desperate to score that he hurled his bat down the wicket at his batting partner Karim Janat in fury when refused a second run in the final over.
After a brief rain delay, Bangladesh set off at a fair lick as they chased the win in 12.1 overs that they needed to get their run rate up.
Left-arm seamer Fazalhaq Farooqi dismissed Tanzid Hasan lbw in the second over and Naveen removed Najmul Hossain Shanto and Shakib Al Hasan in successive balls before another shower swept in with the score at 31-3.
Litton Das and Soumya Sarkar bumped the score up to 46-3 by the end of the powerplay but Rashid brought himself on and bowled the latter for 10 from his fourth delivery.
Rashid came back on to dismiss Towhid Hridoy (14), captain Najmul Hossain Shanto and Hossain, the latter two in successive balls to reduce Bangladesh to 80-7 just before another shower forced the players off again.
Bangladesh's target was reduced to 114 in 19 overs after the break but their hopes of reaching the semi-finals were now gone, though opener Litton Das stood firm even as his batting partners departed in the late drama to score 54 not out.