Bangladesh spinner Shakib Al Hasan completed a five-wicket haul as the hosts bowled out Sri Lanka for 293 by lunch on today's second day of the first test.
Thilan Samaraweera scored 91 runs to help Sri Lanka push on from a precarious 172-6 at the start of play to a respectable total.
Samaraweera and Chaminda Vaas refused to bow down in the morning session, adding 98 runs before the first wicket fell.
Mashrafe bin Mortaza made the breakthrough, taking the new ball and getting Vaas (37) caught behind by Mushfiqur Rahim.
The Sri Lanka tail folded quickly after Vaas' departure, losing the last four wickets for 23 runs.
Shakib got Dammika Prasad (3) lbw for his fourth scalp. Rangana Herath was run out when backing up too far at the bowler's end, and Shakib (5-70) then ended the innings as he got Samaraweera to nick a ball to first slip where Junaid Siddique made the catch.