Sri Lankan bowlers rattled Bangladesh by taking four wickets before lunch to reduce the visitors to 213 for six on day three of the opening Test in Galle on Thursday.
Skipper Mushfiqur Rahim was on 22 and Mehedi Hasan on 11, still trailing Sri Lanka by 281 runs.
Fast bowler Suranga Lakmal took the key wicket of opening batsman Soumya Sarkar for 71 after Bangladesh resumed the day on 133 for two. The visitors still need another 82 runs to avoid the follow-on.
Bangladesh, who are responding to Sri Lanka's 494, lost their first wicket when overnight batsman Sarkar top-edged Lakmal's rising delivery to Lahiru Kumara at fine leg.
Soumya added just five runs to his overnight 66, his 137-ball knock containing eight fours and a six.
Shakib Al Hasan contributed 23 rapid runs off 19 balls before flicking a sliding delivery from Sandakan down the leg side where wicketkeeper Niroshan Dickwella completed the catch.
Mahmudullah (8) and wicketkeeper-batsman Liton Das (5) also threw their wickets away with loose shots.