Rookie off-spinner Ashan Priyanjan grabbed 2/11 from his three overs after Ajantha Mendis gave the breakthrough with two wickets in six balls. The result was that Bangladesh never had a partnership going, after the openers had put on 74 runs Shere-Bangla National Cricket Stadium.
Continuing his brilliant form, Anamul Haque, who struck a century in their record 326 against Pakistan, top-scored with 49 after Bangladesh opted to bat. The opener hit one six and two fours en route to his 86-ball knock, before falling to Priyanjan.
In the next over, Priyanjan took the prized scalp of Shakib-al-Hasan (20), and the pace duo of Suranga Lakmal (2/32) and Thisara Perera (2/29) tightened the noose around the Bangladeshi batsmen in the death overs.
Bangladesh had a solid start with Anamul and Shamsur Rahman going along smoothly against Sri Lank's new ball bowlers Suranga Lakmal and Thisara Perera on a pitch that stayed low and had uneven bounce.
The duo scored mainly in boundaries and put on 74 runs before a dubious lbw decision by Bruce Oxenford gave Mendis the first breakthrough in Rahman.
There was a double blow for Bangladesh as Mendis took another wicket in the same over, when he castled Mominul Haque with a low ball.
Bangladesh struggled for a partnership in the middle with Chaturanga de Silva trapping in-form skipper Mushfiqur Rahim for four.
In pursuit of their first win in the ongoing tournament, the hosts made three changes to the playing XI in the last league match.