Mehidy Hasan's maiden hundred lifted Bangladesh to 430 and on top of the West Indies after two days of the first cricket test on Thursday.
The West Indies was 75-2 in reply, captain Kraigg Brathwaite on 49 at stumps and newcomer Nkrumah Bonner on 17 in an unbroken 51-run partnership.
Batting at No. 8, the allrounder Mehidy scored 103 off 168 balls, and included 13 boundaries.
Mehidy formed three important partnerships to help Bangladesh establish full control on a slow pitch.
He shared a 67-run stand with Shakib Al Hasan for the seventh wicket, 45 runs with Taijul Islam (18) for the eighth wicket, and 67 with Nayeem Hasan (24) for the ninth wicket.
His partnership with Shakib was the most important after Bangladesh resumed the day on 242-5. Bangladesh lost Liton Das early in the morning after he added just four runs to his overnight 34.
At 248-6, Bangladesh could have slumped, but Shakib resisted and brought up his 25th half-century, dealing with the West Indies' disciplined spinners patiently.
Shakib, playing his first test in 17 months after being suspended for not reporting approaches from a bookmaker, scored 68 off 150 balls with five fours.
Offspinner Rahkeem Cornwall was rewarded for his consistency with the wicket of Shakib, who was baffled by extra bounce.
Mehidy reached his fifty off 99 balls. He grew in confidence, with support from Taijul and Nayeem, and brought up the second fifty off 69 balls. Soon after reaching his first ton, he holed to long on off Cornwall's bowling and was the last batsman out.
Left-arm spinner Jomel Warrican was the most successful bowler for West Indies with 4-133, and Cornwall returned 2-114.
Fast bowler Mustafizur Rahman, 2-18, then put West Indies in further trouble with two lbw decisions against John Campbell for 3 in the fifth over after a video review, and debutant Shayne Moseley for 2 with a yorker. Moseley reviewed the decision in vain.