Left-arm spinner Rangana Herath completed a five-wicket haul as Sri Lanka dismissed Bangladesh for 240 runs in their first innings on the opening day of the second and final Test on Saturday.
Herath took full advantage of the visitors' inability to score on the sluggish outfield to finish with 5-68, his 15th five-wicket haul in Tests, while paceman Nuwan Kulasekara grabbed 3-54 as Mominul Haque top-scored with 64.
Sri Lanka reached the close at 18-1 following the dismissal of opener Tillakaratne Dilshan after they were forced to see out four overs before stumps.
Pace bowler Robiul Islam, playing his first Test match since 2011, took the wicket off the third ball of the innings.
Middle-order batsman Mominul gave Bangladesh some hope with his second fifty in as many matches before Herath ended his resistance with his first ball into the third session.
Herath then broke a dogged 59-run partnership between Nasir Hossain (48) and Sohag Gazi (32) before he completed his five-wicket haul to wrap up the innings by trapping Nasir lbw.
Bangladesh lost their top half in the first two sessions after Sri Lanka, seeking the series win after the first Test was drawn, won the toss and sent the visitors in.
Opener Tamim Iqbal, returning into the side after missing out on the first Test, was the first to go when he was trapped leg before by Kulasekara for 10.
Mohammad Ashraful (16), who scored a career best 190 in the previous Test afte a 15-month absence, was slow to react to a call for a quick single and was run out by a direct hit.
Paceman Shaminda Eranga ended Jahurul Islam's resistance on 33 before Herath removed Mahmudullah when Angelo Mathews took a diving catch at gully after the edge hit wicketkeeper Dinesh Chandimal's pad and lobbed up.
Herath then produced a superb delivery to bowl Bangladesh captain Mushfiqur Rahim, man of the match in the drawn first Test at Galle with a double century.
The visitors, who earned their first ever draw against Sri Lanka in the high-scoring opening Test in Galle, made three changes to their side.
Opener Tamim returned from injury while Bangladesh also included pacemen Rubel Hossain and Robiul Islam. Anamul Haque, Shahadat Hossain and Elias Sunny were dropped from the team that played the first match.
In the only change to the Sri Lankan squad, paceman Suranga Lakmal replaced spinner Ajantha Mendis.
Bangladesh first innings
Tamim Iqbal lbw b Kulasekara 10
Jahurul Islam c Chandimal b Eranga 33
Mohammad Ashraful run out 16
Mominul Haque c Chandimal b Herath 64
Mahmudullah c Mathews b Herath 8
Mushfiqur Rahim b Herath 7
Nasir Hossain lbw b Herath 48
Sohag Gazi st Chandimal b Herath 32
Abul Hasan c Karunaratne b Kulasekara 4
Rubel Hossain c Herath b Kulasekara 0
Robiul Islam not out 1
Extras (lb-8, w-7, nb-2) 17
Total (all out; 83.3 overs) 240
Fall of wickets: 1-16, 2-51, 3-100, 4-128, 5-152, 6-163, 7-222, 8-232. 9-232
Bowling: Kulasekara 18-3-54-3 (nb-1), Lakmal 16-4-44-0(w-2), Mathews 3-1-7-0, Eranga 14-2-40-1 (w-1 nb-1), Herath 28.3-6-68-5, Dilshan 4-0-19-0
Sri Lanka first innings
D. Karunaratne not out 12
T. Dilshan c Rahim b Robiul 0
K. Sangakkara not out 3
Extras (nb-3) 3
Total (one wicket; four overs) 18
Fall of wickets: 1-7
Bowling (to date): Robiul 2-0-12-1(nb-3), Sohag Gazi 2-1-6-0
Photograph: Dinuka Liyanawatte/Reuters