Shakib Al Hasan made 97 runs and Nasir Hossain smashed an unbeaten half-century to help Bangladesh reach 226-6 at stumps Saturday after a slow start on the fourth day of the second and final test match.
Bangladesh was 85-5 at tea but Shakib and Nasir fought back to yield a 144-run, sixth-wicket partnership at the end of the day after the West Indies declared its first innings at 648-9 just 10 minutes into the second session with a 261-run lead.
At stumps, Bangladesh still trailed the visitors by 35 runs.
Nasir was not out on 64 after Shakib was out three runs shy of a century.
Shakib took 117 balls including 10 boundaries and one six to reach his total.
Tino Best returned figures of 3-26, while Veerasammy Permaul took 2-51 and Fidel Edwards took one wicket to put the West Indies on course to sweep the two-test series 2-0.
Best removed opener Tamim Iqbal (28), Shahriar Nafees (21) and Naeem Islam (2).
Fidel Edwards trapped the other opener, Nazimuddin, lbw for a duck while Veerasammy Permaul (2-51) dismissed skipper Mushfiqur Rahim for 10 and Shakib for 97.
Earlier, Shivnarine Chanderpaul scored an unbeaten 150 before the declaration that left the West Indies almost five sessions to dismiss Bangladesh in a bid to sweep the two-test series 2-0 after claiming the first test by 77 runs.
At the break, Shakib Al Hasan was unbeaten on 20 with Nasir Hossain not out on 1.
After resuming on the overnight score of 564-4, the West Indies lost four wickets to Shakib Al Hasan for 146 runs in the morning. Two of the dismissals came in the last over before the lunch interval. The last wicket was taken by Sohag Gazi (3-167).
Shakib's four-wicket haul gives him 102 test wickets.
On Wednesday, Bangladesh was dismissed for 387 runs.
Chanderpaul's 150 came off 282 balls with 12 boundaries and one six, and backed up dashing scores of 260 from Marlon Samuels and 127 from Darren Bravo. Chanderpaul had an unbeaten 203 in the first test in Dhaka.
The West Indies were untroubled through most of the 26 overs played in the morning session until Shakib struck in the last four overs before lunch.
Denesh Ramdin was out for 31, caught by Rahim, Darren Sammy went for a duck, Permaul had 13 and Sunil Narine was dismissed without scoring.