Sri Lanka hit back with four wickets after being bowled out for 222 as bowlers led by Bangladesh spinner Abdur Razzak dominated day one of the second Test in Dhaka on Thursday.
Razzak, making a Test return after four years, and fellow left-arm spinner Taijul Islam claimed four wickets each to wrap up the Sri Lankan innings shortly after tea.
Sri Lanka paceman Suranga Lakmal then picked up two wickets to leave the hosts tottering at 56-4 at stumps. Liton Das, on 24, and nightwatchman Mehedi Miraz, on five, were batting at the close of play.
Lakmal drew first blood after taking a return catch off his own bowling to remove Tamim Iqbal for four in just the third ball of the Bangladesh innings.
But it was Mominul Haque`s run out in the very next over that left the hosts in trouble. Haque, who scored centuries in both innings of the drawn first Test in Chittagong, returned without scoring.
Lakmal then bowled Mushfiqur Rahim for one before Dilruwan Perera ended the brief resistance of Imrul Kayes, who made 19.
Earlier the 35-year-old Razzak returned impressive figures of 4-63 to land the opening punch for Bangladesh after the visitors elected to bat first.
Taijul complimented Razzak`s effort and claimed the final wicket of Roshen Silva, who made 56 after Kusal Mendis top-scored with 68 for Sri Lanka.
Silva was involved in two dogged partnerships with Perera (31) and Akila Dananjaya (20) against a persistent Bangladesh bowling attack.
Razzak, who played the last of his previous 12 Tests in 2014, struck three times in the morning session including getting skipper Dinesh Chandimal for a first-ball duck.
Mendis brought up his 50 in 81 balls with a six off Taijul but Razzak rocked Sri Lanka with two wickets in two balls.