West Indies were eight without loss in their second innings at lunch on the fourth day after bowling Bangladesh out for 556, with a draw appearing the most likely result of the first Test in Dhaka.
Chris Gayle was unbeaten on seven and Kieran Powell on one not out as the West Indies looked to score quickly after Nasir Hossain had helped the home side to a slender 29-run lead but missed out on a maiden century by four runs.
The West Indies had made 527-4 in their first innings on a lifeless Shere Bangla pitch.
The 20-year-old Nasir, playing only his fifth Test, slammed four sixes and six boundaries during his brisk 136-ball knock -- improving on his previous best of 79 he made against Pakistan at the same venue last year.
Resuming at 455-6, Bangladesh slowly progressed towards the West Indian total with Mohammad Mahmudullah reaching his fifth half-century in Test cricket.
Sunil Narine, who went wicket-less on the third day, then came into his own by dismissing Mahmudullah, caught by Kieran Powell for 62 and then four runs later had Sohag Gazi bowled for four.
Sensing Bangladesh would fall short of the West Indian total, Nasir took it upon himself to attack, adding 61 for the ninth wicket with Shahadat Hossain (13) and pushing his team into the lead.
Nasir hit two sixes off Veerasammy Permaul and one off Narine to enter 90s but played one shot too many and was caught off a miscued lofted shot off paceman Tino Best, just four short of his maiden hundred.
Narine wrapped up the innings by dismissing Hossain to finish with 3-148. Paceman Ravi Rampaul took 3-118.