Sri Lanka's Rangana Herath bagged five wickets as Bangladesh were bowled out for 240 in their first innings on the opening day of the second and final Test in Colombo on Saturday.
The left-arm spinner finished with 5-68, his 15th haul of five or more wickets in a Test innings, while fast bowler Nuwan Kulasekara took three wickets as the tourists were all out in the last session after being put in to bat.
Sri Lanka lost opener Tillakaratne Dilshan for no score before reaching 18-1 in reply at stumps. Opener Dimuth Karunaratne was unbeaten on 12 with Kumar Sangakkara (three not out).
Mominul Haque, who made 55 on debut in the drawn first Test in Galle, top-scored for Bangladesh with an impressive 64. Nasir Hossain (48), opener Jahurul Islam (33) and Sohag Gazi (32) were the other main scorers.
Herath dismissed skipper Mushfiqur Rahim (seven) and Mohammad Mahmudullah (eight) in four overs in the second session before removing Mominul, Gazi and Nasir in the last.
Nasir, who put on 59 for the seventh wicket with Gazi, cracked one six and two fours in his 87-ball knock before being the last man out, trapped leg-before by Herath.
Rahim, who became the first Bangladeshi to score a Test double-century in the last match, was bowled while Mahmudullah was caught by skipper Angelo Mathews, who dived from the slips to take a smart catch.
The 21-year-old Mominul put on 49 for the third wicket with Jahurul to steady the innings after Bangladesh had lost two crucial wickets in the first session.
Hard-hitting opener Tamim Iqbal was trapped leg-before for 10 while Mohammad Ashraful, who scored a brilliant 190 in the last match, was run out for 16.
Jahurul hit just two fours in his patient 129-ball knock before being caught by wicket-keeper Dinesh Chandimal off fast bowler Shaminda Eranga in the afternoon session.
Sri Lanka struck in the seventh over of the morning session when Kulasekara removed Tamim, returning to the side after missing the first match with an injury.
Sri Lanka made one change from the side that played the opening Test, bringing in paceman Suranga Lakmal in place of spinner Ajantha Mendis.
Bangladesh replaced Anamul Haque, Elias Sunny and Shahadat Hossain with Tamim, Robiul Islam and Rubel Hossain.