Mosaddek Hossain top-scored with 34 not out as Bangladesh made 155-6 in their first Twenty20 International of a two-match series against Sri Lanka in Colombo on Tuesday.
Mosaddek helped revive the innings with a 57-run sixth wicket stand with Mahmudullah after some disciplined bowling by Sri Lanka left the visitors reeling at 82-5 at one stage.
Mahmudullah made 31 off 26 balls runs while Soumya Sarkar chipped in with 29 in Bangladesh's stop-start innings at R Premadasa Stadium in Colombo.
Bangladesh captain Mashrafe Mortaza, who announced his retirement from Twenty20 International cricket before the game, won the toss and opted to bat first but the side was rocked by Lasith Malinga's second ball strike.
Making a comeback in international cricket after weeks of injury lay-off, Malinga bowled opener Tamim Iqbal for a duck, though Sri Lanka could not capitalise on the start.
Soumya and Sabbir Rahman put on 57 runs for the second wicket to power Bangladesh back on track before a run-out of Sabbir for 16 triggered a Bangladesh collapse and choked the visitors in the middle overs.
Soumya left in the same over before quick dismissals of Mushfiqur Rahim (11) and Shakib Al Hasan (11) threatened to have derailed Bangladesh completely.
Malinga finished with 2-38.