A Mashrafe Mortaza half-century helped Bangladesh avoid the follow on but Sri Lanka remained firmly on top in the second Test after dismissing the hosts for 208 in their first innings in Chittagong on Sunday.
Sri Lanka stretched their 176 run first innings lead to 189, ending the second day with a second innings total of 13 for no loss.
Bangladesh toiled hard to avoid batting in successive innings after losing their ninth wicket for 145 in reply to Sri Lanka's 384, with Mortaza and Shahadat Hossain striking a defiant last wicket partnership. Mortaza smashed his way to 63 off 89 deliveries, hitting eight boundaries and two sixes.
"I have batted in such a situation on quite a few occasions in the past so I knew what to do," Mortaza told reporters. "The plan was to keep the strike as much as possible until we crossed the follow-on mark.
"The first target now is to keep them to a low score in the second innings and then we will see what happens."
Chaminda Vaas had earlier removed openers Tamim Iqbal (0) and Imrul Kayes (6) before a full-toss from Dilhara Fernando uprooted the middle-stump of Zunaed Siddique, who made 28.
Ajantha Mendis, playing his first Test away from home, removed Roqibul Hassan before lunch and added two more wickets in the second session when Mehrab Hossain (18) and Shakib Al Hasan (0) were adjudged lbw off successive balls.
His fourth and final victim was Bangladesh wicketkeeper Mushfiqur Rahim, stumped by Prasanna Jayawardene for 21.
Muralitharan joined the act dismissing skipper Mohammad Ashraful, who made 45 before his attempted reverse swipe took the bottom edge to land in hands of wicketkeeper Prasanna Jayawardene, leaving Bangladesh at 122-7.
In the morning, the tourists added only 13 runs in four overs to the overnight 371 for six before they were all out.
Left-arm spinner Shakib triggered the collapse, trapping Chamara Kapugedera lbw in the sixth ball of the day after the batsman had added three runs to his overnight 93.
Mashrafe Mortaza removed the other overnight batsman, Vaas, with the first ball of the next over. Shakib added Muttiah Muralitharan and Dilhara Fernando in successive balls to end the innings.