Abdur Razzak delivered an early breakthrough by dismissing Dimuth Karunaratne.
Dhananjaya de Silva was involved in a good stand with Kusal Mendis before falling to Taijul Islam.
Kusal Mendis extended his good form by bringing up a fine half-century.
Abdur Razzak struck on either side of the Lunch break to leave Sri Lanka in a lot of trouble.
Roshen Silva batted well with the lower-order batsmen and registered a fighting half-century before being the last to depart as Sri Lanka were bowled out for 222.
Suranga Lakmal delivered a couple of crucial strikes to help Sri Lanka stage a strong comeback.
Dilruwan Perera struck late in the day as Bangladesh ended Day 1 at 56 for 4.