Darren Bravo hit his first international century while Kirk Edwards missed his second of the match as West Indies tightened their grip over Bangladesh in the second test on Monday.
After removing the three remaining Bangladesh wickets in just over an hour to earn a 124-run first innings lead, the tourists finished the day on 207 for three.
West Indies now lead by 331 runs with Bravo on (100) and nightwatchman Kemar Roach on (4) at the crease.
Bravo sparkled in a 151-run third wicket stand with Kirk Edwards (86) before left-arm spinner Suhrawadi Shuvo broke the partnership.
Edwards, who hit 121 in the first innings, survived a scare on 69 when Shakib Al Hasan appealed for a catch off paceman Rubel Hossain but replays suggested that the ball touched the ground before the catch was taken. Shuvo denied Edwards his second century of the match.
Bravo made the most of two reprieves he received on 45 when Mushfiqur Rahim and Imrul Kayes dropped him in the same Shakib over. He also survived a caught-behind appeal on 98 before bringing up his maiden test century.
Earlier, West Indies lost their scoreless opener Kraigg Brathwaite to the second ball of their second innings when Naeem Islam ran him out.
Shakib gave Bangladesh their second success in the second session when he had Kieran Powell caught by Nasir Hossain for 12 before Bravo and Edwards took over. Scores: WI 355 & 207-3 (D Bravo 100 no, K Edwards 86) v Ban 231.