Kieran Powell smashed a century in each innings for West Indies, before Bangladesh captured late wickets to keep alive hopes of an unlikely result in the first Test in Dhaka on Friday (November 16).
Powell, 22, scored 110 for his second century of the match to anchor his team to 244 for 6 at close on the fourth day, leading by 215 runs and setting up an intriguing fifth and final day.
In the morning Bangladesh were dismissed for 556 runs in their first innings, taking a slender 29-run lead over West Indies' first knock of 527-4 declared.
Powell, who made 117 in the first innings, batted with resolve and authority and added 189 runs for the second wicket with Darren Bravo who made 76. Their stand is a new record for the second wicket against Bangladesh, beating the previous stand of 87 was between Chris Gayle and Ramnaresh Sarwan at Gros Islet in 2004.
But Shakib Al Hasan, the left-arm spinner, dismissed Powell and Denesh Ramdin (5), and Sohag Gazi, the debutant, took two wickets to stop the West Indian run flow sparked by Powell and Bravo.
Gayle, who has recently returned to the West Indies team, failed for the second time in the match, scoring only 19 before falling to Rubel Hossain, the paceman.
Bangladesh could have dismissed Powell early but Junaid Siddique dropped a straightforward catch off Shahadat Hossain. Powell was only 17 then. He took full advantage of the life and together with Bravo boosted the total to 124 for 1 at tea, pacing the innings well in the last session.
Powell hit Shakib for a towering six before reaching his hundred with three boundaries in one Rubel over. In all, he hit 12 boundaries off 197 balls.
Earlier, Nasir Hossain missed his maiden hundred by just four runs but still helped Bangladesh overhaul the West Indian total.
Nasir, 20, playing only his fifth Test, hit four sixes and six boundaries during his fiery 136-ball knock - improving on his previous best of 79 against Pakistan at the same venue last year.
Resuming at 455 for 6, Bangladesh were guided towards the West Indian total by a solid 121-run stand for the seventh wicket between Nasir and Mohammad Mahmudullah (62) before Sunil Narine took two quick wickets.
Sensing Bangladesh would fell short of the West Indian total, Nasir farmed the strike and added 61 for the ninth wicket with Shahadat Hossain (13). The ninth wicket stand also took Bangladesh into the lead.
Nasir hit two sixes off Veerasammy Permaul and one off Narine to enter 90s but was caught off a miscued lofted shot off Tino Best.
Ravi Rampaul and Narine finished with three wickets apiece.
The second and final Test will start in Khulna from November 21.