Selecting to bat, the islanders rode on Kumar Sangakkara's patient 76 and captain Angelo Mathews' blustery 41-ball 45 to post an intense 253/6 at the Sher-e-Bangla National Stadium.
In answer, Afghanistan were packaged out for 124 in 38.4 overs, fixing Sri Lanka's place in the last of the five-country mainland competition, and further decreasing India's shots.
India have lost two of their three matches and necessity to win with a reward point against Afghanistan and trust that Bangladesh score a resentful triumph over Pakistan in their last separate round-robin matches.
Afghanistan's run-pursue never truly got the energy as they lost wickets at customary interims, slipping to 73 for five in the 21st over.
Their batting conspicuous difference a conspicuous difference to the exertions put in by the Afghan bowlers, who kept the free-streaming Lankan batsmen under wraps for a significant some piece of their innings before Mathews let detached.