For Sri Lanka, Kumar Sangakkara was batting on 38 in company of Dinesh Chandimal (three not out) with the hosts trailing Bangladesh by 159 runs.
Resuming at 18-1, Sri Lanka lost opener Dimuth Karunaratne (17) when Abul Hasan beat him with extra pace to induce an edge behind the stumps.
Robiul Islam dismissed then Lahiru Thirimanne, who was out for duck as he went for a drive but ended up giving wicketkeeper Mushfiqur Rahim his third catch of the innings.
Sri Lanka's trouble compounded when skipper Angelo Mathews(16) was caught in the slip after he offered a forward defensive shot to a Sohag Gazi delivery.
