Wanindu Hasaranga's 3 for 13 helped restrict Afghanistan to 144 before a half-century from Dhananjaya de Silva secured the win with nine balls to spare
Brisbane: Afghanistan 144-8, Sri Lanka 148-4 - Sri Lanka won by six wickets
Sri Lanka kept their 2022 T20 World Cup semi-final hopes alive with a six-wicket victory over Afghanistan in Brisbane.
The result moves the Asia Cup champions up to third in group one, one point behind New Zealand and Australia. They will face England at the SCG in their final group match on November 5.
Afghanistan, however, who hadn't played since October 22 after having two matches washed out without a ball being bowled, have been eliminated and must now beat Australia in Adelaide to avoid a winless tournament.
Having dodged the forecasted rain Afghanistan navigated the powerplay without loss, seeing off the early movement of Kasun Rajitha to post 42 for 0. With two fours and two sixes, Rahmanullah Gurbaz was beginning to motor.
However, the return of Lahiru Kumara with the ball immediately brought a wicket, Gurbaz bowled for 28 off 24.

Wanindu Hasaranga picked up three wickets [Bradley Kanaris/Getty Images]
A controlled 26-run partnership between Usman Ghani and Ibrahim Zadran brought Afghanistan to the 10-over mark before Wanindu Hasaranga struck in his second over of the day to remove Ghani (caught Dasun Shanaka) for 27 (27).
Ibrahim enjoyed himself against Maheesh Theekshana, dispatching the spinner for a four and a six as part of a 17-run over. However, the swing in momentum would be short-lived, with Kumara removing Afghanistan's No.3 (caught Bhanuka Rajapaksa) for 22 (18) in the following over.
From then on, wickets fell regularly for Afghanistan. Dhananjaya de Silva had Najibullah Zadran (18 off 16) caught by Hasaranga in the deep before a communication mix-up saw Gulbadin Naib (12 off 14) runout in the 18th.
His departure brought Mohammad Nabi and Rashid Khan together, but the experienced duo could only add 13 runs before the former was removed by Rajitha (caught Shanaka). And Hasaranga finished the innings in style for Sri Lanka, bowling Rashid and having Mujeeb ur Rahman stumped to finish with 3 for 13: Afghanistan 144 for 8.
Unfortunately for Sri Lanka, Afghanistan immediately took control of the chase, with an early wicket for Mujeeb (Pathum Nissanka bowled for 10) and a maiden from Fazalhaq Farooqi helping to restrict them to 28 for 1 after six overs – 14 runs behind Afghanistan at the same stage.
Rashid Khan struck in the eighth over to remove Kusal Mendis, caught behind by Gurbaz for 25 (27), but thanks to an expensive over from Fareed Ahmed, Sri Lanka scored 35 runs off the four overs following the powerplay to reduce the equation to 82 off 60 at drinks.
Sri Lanka continued to ramp up their scoring, racing into three figures in the 14th over, before Rashid once again came up with a wicket for Afghanistan, Azmatullah Omarzai taking the catch to remove Charith Asalanka.
Sadly, it made little difference to the outcome, with Dhananjaya and Rajapaksa putting on 42 runs off 27 deliveries for the fourth wicket to take their side to within three runs of victory.
Mujeeb had Rajapaksa caught behind to delay the win, leaving Dhananjaya, unbeaten on 66 off 42, to deservedly hit the winning runs.