Sri Lanka took a flurry of late wickets to put the brakes on Bangladesh at the second Test in Colombo Thursday after the tourists made a promising start to their first innings with a 95-run partnership.
Soumya Sarkar top-scored for Bangladesh with 61 while sharing a solid opening stand with Tamim Iqbal which gave the visitors the upper hand on day two before their innings unravelled late in the afternoon.
Left-arm spinner Lakshan Sandakan claimed two wickets in two balls in the final hour as Sri Lanka reduced Bangladesh to 214-5 at the close.
It means the hosts still lead Bangladesh by 124 runs after making 338 in their first innings, thanks largely to a fighting century by Dinesh Chandimal.
Bangladesh thought they were in a comfortable position after Soumya made his third fifty in the series in as many innings, and Tamim made 49 before being trapped lbw by Sri Lankan skipper Rangana Herath.
Sandakan then trapped Imrul Kayes plumb in front to dismiss him for 34 and then successfully reviewed a not out decision to remove nightwatchman Taijul Islam off the next ball.
Suranga Lakmal delivered a further blow to the visiting side when he removed Sabbir Rahman after he had scored 42, playing the lead role in a 62-run partnership with Imrul for the third wicket.
After Herath earned Sri Lanka's first breakthrough, Sandakan then bowled Soumya before finishing the day with 3-65.
Shakib Al Hasan lived dangerously to see out the day with unbeaten 18 alongside skipper Mushfiqur Rahim, who was on two at the close.
The hosts earlier added exactly 100 runs to their overnight 238-7 before they were all out on the stroke of lunch break.
Chandimal, who was unbeaten on 86 overnight, made 138, his eighth in Test cricket, off 300 balls after an innings which contained more than its share of good fortune
After surviving two TV reviews on the first day, he was again given out caught behind on Thursday off Mustafizur Rahman's bowling but the decision was overturned when replays showed the ball had not touched his bat.
Bangladesh were hoping to wrap up the innings quickly once Shakib removed Herath for 25 in the ninth over of the morning session after the Sri Lankan skipper added just seven runs to his overnight score.
Soumya managed to grasp the catch after several fumbled attempts but Chandimal and Lakmal then continued to frustrate Bangladesh as they put on a 55-run partnership for the ninth wicket.
Off-spinner Mehedi finally dismissed Chandimal, who now has four Test centuries against Bangladesh in six Tests, as debutant Mosaddek Hossain took the catch at midwicket.
Chandimal, who struck only four boundaries on the opening day while helping his side recover from 70-4, batted aggressively on the second day to hit 10 fours and a six overall in his innings.
Lakmal swung his bat to add 35 runs to Sri Lanka's total before he became the last man to be dismissed with a catch to Soumya at third man off pace bowler Subashis Roy.
Mehedi finished with 3-90 for Bangladesh.