Muttiah Muralitharan claimed five wickets to put Sri Lanka firmly in command of the first Test against Bangladesh in Dhaka on Saturday, the off-spinner's haul leaving the hosts on 177 for nine at the end of the second day.
After Bangladesh had made a confident start with an opening stand of 44 in response to Sri Lanka's first innings total of 293, wickets fell at regular intervals as Muralitharan ripped through the home batting line-up.
Muralitharan made the vital breakthrough with his second delivery of the match when Tamim Iqbal was caught at forward short-leg by Malinda Warnapura for 17, the wicket giving the visitors enough encouragement to take control of the contest.
He added three more wickets around the tea interval before completing his 66th five-wicket haul in Tests with the dismissal of Shahadat Hossain, who was stumped by wicketkeeper Prasanna Jayawardene minutes before bad light stopped the play.
Chaminda Vaas chipped in with 2-33 and in the process claimed his 350th Test victim, when he had Bangladesh skipper Mohammad Ashraful caught by a diving Tillakaratne Dilshan at cover.
Vaas also had opener Imrul Kayes caught behind after the 21-year-old had made a Test-best 33, the highest score of the Bangladesh innings.
Earlier, Shakib Al Hasan completed his fourth five-wicket haul in five matches to help Bangladesh dismiss Sri Lanka for less than 300.
Resuming on their overnight score of 172-6, Thilan Samaraweera led a lower-order recovery for the visitors with 90 off 141 balls before Bangladesh struck back on the stroke of lunch.
Samaraweera, who reached his 16th Test half-century by pushing a full length Mehrab Hossain delivery to the cover area for a single, shared 99 runs with Vaas for the seventh wicket as Sri Lanka grew in confidence.
However, the second new ball helped Bangladesh gain their first success of the morning after the duo had batted brilliantly and the rest of the tail succumbed rather quickly.
Vaas edged Mashrafe Mortaza to wicketkeeper Mushfiqur Rahim on 37 before Shakib trapped Dammika Prasad lbw for three to leave the visitors on 285-8.
Rangana Herath was then run out for one before Shakib had Samaraweera caught by Siddique in the next over to close out the innings and return figures of 5-70.