Marlon Samuels hit his third century of the year as West Indies closed day two of the second Test against Bangladesh on 241-2 in their first innings, still 146 runs behind.
Samuels finished on 109 not out alongside Darren Bravo, who contributed an unbeaten 85 to a third-wicket stand worth 198 so far.
Bangladesh had resumed on 365-8 in their first innings at the start of the day with number 10 Abul Hasan, making his Test debut, on 100 not out.
Mahmudullah, who contributed 76 to a ninth-wicket stand of 184, offered a return catch to medium pacer Darren Sammy (3-74) in the third over of the morning.
Hasan advanced to 113 before being last out, a sixth victim for fast bowler Fidel Edwards (6-90), to fall four short of the record score by a number 10. Bangladesh were all out for 387.
West Indies were reduced to 43-2 in the 13th over of their reply with both openers, Kieran Powell and Chris Gayle, back in the pavilion.
Powell (13) pulled a short delivery from seam bowler Rubel Hossain (1-31) to Shakib Al Hasan on the square-leg boundary and Gayle (25) was caught behind from a miscued sweep at left-arm spinner Sohag Gazi (1-67).
But Samuels joined Bravo through to lunch on 62-2 and their partnership flowered throughout the remainder of the day.
Samuels went to three figures from 227 balls and, by stumps, had struck 13 fours and a six, while Bravo's 197-ball contribution contained seven fours.
West Indies lead the two-match series 1-0 after their 77-run win in Dhaka.