Leg-spinner Rishad Hossain claimed three for 26 to lead the Bangladeshi effort on a surface where, having opted to take first strike, no-one in the Afghan top order managed to collar the varied attack.
Afghanistan can reach the last four of the tournament with a victory in Monday’s game which would also eliminate Australia.
But despite another good opening stand – 59 off 10.4 overs – Afghanistan failed to capitalise on that platform with topscorer Rahmanullah Gurbaz’s laborious 43 off 55 balls typifying the struggle to get the ball away.
Ibrahim Zadran and Azmatullah Omarzai managed to get into double-figures but the rate of scoring remained pedestrian throughout.
Seamer Taskin Ahmed, one of two changes to the Bangladesh team which lost heavily to semi-final qualifiers India in their last match two days ago, produced a superb four-over spell, conceding just 12 runs for the wicket of former captain Mohammad Nabi.
It was left to skipper Rashid Khan (19 not out) to belt three sixes – there was only one more in the entire innings – in the final two overs to help dribble the score over the 100-run mark.
Playing XIs:
Afghanistan – Rashid Khan (captain), Rahmanullah Gurbaz (wicketkeeper), Ibrahim Zadran, Azmatullah Omarzai, Karim Janat, Mohammad Nabi, Gulbadin Naib, Nangeyalia Kharote, Noor Ahmad, Naveen ul Haq, Fazalhaq Farooqi.
Bangladesh – Najmul Hossain Shanto (captain), Litton Das (wicketkeeper), Tanzid Hasan, Towhid Hridoy, Shakib al Hasan, Mahmudullah, Soumya Sarkar, Rishad Hossain, Taskin Ahmed, Tanzim Hasan Sakib, Mustafizur Rahman.