At Shere Bangla Cricket Stadium Mirpur, Bangladesh won the toss and elected to bat first.
In restricted 50 overs, Bangla tigers gave an easy target of 205 runs for the loss of 9 wickets.
Inam ul Haq was the top scorer who scored 49 runs.
Chasing 205, Sri Lanka made a disastrous start losing three wickets for only eight runs as Bangladeshi pace bowler Al-Amin Hossain dismissed opener Kusal Perera for naught and experienced batsman Kumar Sangakkara for two while veteran batsman Mahela Jayawardene was run out for naught.
Sri Lankan captain Angelo Mathews took the charge at that crucial moment and safely landed its team to victory.
He played an inning of 74 (not out).
It should be mentioned here that Sri Lanka remain unbeaten in the tournament and will play final against Pakistan