Put into bat at the Hampshire Bowl, Bangladesh posted 262 for seven wickets after wicketkeeper-batsman Mushfiqur Rahim topscored with 83 and Shakib Al Hasan (51) reclaimed his position as the tournament's leading scorer.
Off-spinner Mujeeb Ur Rahman was the pick of the Afghan bowlers claiming 3-39.
Shakib (5-29) then returned to help Bangladesh skittle out Afghanistan for 200 in 47 overs to banish them to their seventh successive defeat.
Gulbadin Naib (47) and Samiullah Shinwari (49 not out) offered some resistance with the bat in yet another batting capitulation by the tournament's bottom-placed side.
Bangladesh moved up to fifth in the 10-team standings with seven points from seven games. The top four teams advance to the semi-finals.