Fidel Edwards picked up five wickets in a devastating opening spell to stun Bangladesh before the hosts recovered to end the second day of the second test against the West Indies on 204 for seven on Sunday.
After dismissing the tourists for 355, the hosts had no answer to Edwards' extra pace and bounce on a supposedly low and slow track and were reduced to 59-5 before former captain Shakib Al Hasan provided some resistance with a quick-fire 73.
Shakib's eventful 74-ball knock was brought to an end when he was deceived by the flight and turn from Devendra Bishoo and was bowled out to hand the leg-spinner his only success of the day.
Naeem Islam, who added 84 runs with Shakib for the sixth wicket, wasted his hard work when he was run out for 45 in the penultimate over of the day.
Nasir Hossain (34), dropped by Sammy off Marlon Samuels on eight, was at the crease with debutant Suhrawadi Shuvo (two) at the close, with Bangladesh still trailing by 151 runs.
All-rounder Shakib earlier took five wickets to help Bangladesh wrap up the West Indies innings after Kirk Edwards recorded a second century in his third test.
Tamim Iqbal, who was reprimanded by the match referee for his verbal tirade against Marlon Samuels on Saturday, then triggered the Bangladesh collapse when he fell to a catch at short leg, unable to fend off a short ball.
Shahriar Nafees was dismissed in similar fashion before the diminutive paceman also sent back Roqibul Hassan and captain Mushfiqur Rahim in consecutive balls during his next over.
Shakib survived a deadly yorker on the hat-trick ball but the damage continued from the other end with Imrul Kayes giving a catch to Kraigg Brathwaite for Fidel Edwards's fifth wicket.
In the morning session, Kirk Edwards (121) and Marlon Samuels (48) added 87 for the sixth wicket before Shakib led Bangladesh's fightback with 5-63, his eighth five-wicket haul in tests.
Nasir ended the stand with a sharp return catch after Samuels played a fluent knock, which included seven boundaries.
Kirk Edwards, unbeaten on 71 overnight, brought up his century with a boundary off Nasir and was out lbw to Shakib after hitting 14 fours and two sixes.
The first test of the two-match series ended in a rain-affected draw in Chittagong.