Sri Lanka lead Bangladesh by 166 runs after both teams struggled with the bat on the first day of the second Test in Dhaka, where the returning Abdur Razzak (4-63) starred for the hosts.
The tourists had recorded a huge score of 713-9 declared as the first Test was drawn, but they were all out for 222 in the opening innings at the Shere Bangla National Stadium, before recovering some momentum in the field to take four wickets before the close of play.
Kusal Mendis kept Sri Lanka on track early on, notching a half-century to help his team reach 96-2 following the dismissals of Dimuth Karunaratne (3) and Dhananjaya de Silva (19) to Razzak, making his first appearance since 2014 following a surprise recall, and Taijul Islam (4-83) respectively.
However, Sri Lanka crumbled as Danushka Gunathilaka (13) and skipper Dinesh Chandimal (0) went from consecutive deliveries.
Gunathilaka chipped Razzak to Mushfiqur Rahim at mid-off but it took a better delivery to dislodge the captain for a duck, Chandimal's off stump removed by a length ball that beat the outside the edge, as Razzak shone in the absence of Shakib Al Hasan, who was ruled out of the first Test with a finger injury.
And the 35-year-old was at it again soon after lunch, a similar delivery finally dislodging Mendis (68), before Niroshan Dickwella (1) also departed to Taijul.
Sri Lank's middle order and tail offered some resistance, the partnership of Roshen Silva and Dilruwan Perera (31) lasting for 52 runs.
Silva ultimately went for 56, having continued to chip away alongside Akila Dananjaya (20) and Rangana Herath (2), and left Bangladesh with an achievable first-innings target.
But the home side made a shoddy start to their chase, losing Tamim Iqbal (4) and Mominul Haque (0) inside the first two overs, with Suranga Lakmal (2-15) taking his 100th Test wicket as he caught and bowled the former.
Mushfiqur Rahim (1) went, too, after a series of near misses, and Sri Lanka piled the pressure on in the final 30 minutes to take Imrul Kayes (19) lbw, Bangladesh limping to 56-4 at stumps.
Liton Das (24 not out) and Mehidy Hasan Miraz (five n.o.) will resume on Friday.