Sri Lanka's old guard, Muttiah Muralitharan and Chaminda Vaas, struck back on the second day of the first Test against Bangladesh to put their side firmly in control.
The pair claimed five and two wickets respectively, leaving the hosts on 177 for nine at stumps and continuing a fightback which began as Sri Lanka took their total close to 300 before being bowled out by lunch in Mirpur.
Vaas struck a stubborn 37, supporting Thilan Samaraweera (90) as the pair put on 99 for the seventh wicket to take the tourists to 293, despite figures of five for 70 from Shakib Al Hasan.
Resuming on 172 for six, the hosts began the morning session looking to wrap up the Sri Lankan innings in short order but found Samaraweera and Vaas resolute obstacles.
Vaas cracked the first boundary of the day in just the third over when he cut Shahadat Hossain to the fence before giving Al Hasan the same treatment.
Samaraweera then took over, punishing Mahbubul Alam with consecutive fours as Sri Lanka forged past 200. The 32-year-old then whipped Al Hasan through midwicket for his eighth boundary to bring up his 16th Test fifty from 83 balls.
Mashrafe Mortaza made the breakthrough with the new ball, getting one to move one away from Vaas and a thin edge carried through to wicketkeeper Mushfiqur Rahim to leave Sri Lanka 270 for seven.
Shakib then removed Dammika Prasad for three and Rangana Herath was run out, before the spinner removed Samaraweera to end the innings.
Bangladesh began their reply confidently, reaching 44 before Tamim Iqbal (17) gloved Muralitharan to Malinda Warnapura at short leg.
It was a steady stream after that, with Imrul Kayes (33) falling to a Vaas short ball and Mohammad Ashraful (12) finding Tillakaratne Dilshan with an uppish drive to give the seamer his second.
Muralitharan then bowled Junaid Siddique for 29 in the last over before tea, going on to complete his haul of five for 48 as the hosts' tail capitulated.
Sri Lanka will want to nab the final wicket quickly on Sunday, and get going with their second inning.