Bangladesh could only add 56 runs in the first session of the second day as Sri Lanka picked up six wickets to bundle the hosts for 110 in the Dhaka Test on Friday morning.
The Tigers lost their last five wickets in the space of just three runs, as Mehidy Hasan Miraz saw his fellow batsmen tamely surrender before the Lions. Miraz, the top scorer for the hosts, was not out on 38.
Bangladesh needed a solid start to repair on the first day's damage, but Suranga Lakmal bowled Liton Das (25) in the second day's fourth over to serve a blow to the hosts' plans.
The batsman, looking confident on the first day, brought a delivery on to his stumps to give Lakmal his third wicket of the game, with the score on 73.
After adding 34 runs with Miraz in the sixth wicket, skipper Mahmudullah (17) was bowled by Akila Dananjaya and the storm began. In the same over, the bowler removed Sabbir Rahman for a duck and in his next over, he took a return catch to send Abdur Razzak back to the pavillion.
Taijul Islam was then run out in another shambolic display of lack of concentration, the fielder at short leg caught him off the crease with remarkable speed.
In the next ball, Dilruwan Perera trapped Mustiafizur Rahman leg before the wicket to see off the Bangladesh batting, as the visitors take a 112-run lead.