West Indies started the day 167 runs behind Bangladesh and finished it 106 runs ahead in the second Test at Daren Sammy Stadium here.
All-rounder Kyle Mayers on Saturday led the turnaround with a chanceless and unbeaten 126 runs, easily the highest score by either side after two days.
In reply to Bangladesh’s sub-par 234, West Indies moved from 67 without loss overnight to 340-5 at stumps.
Winner of the first Test in Antigua in just over three days, West Indies was well on course to clinch the short series.
After captain Kraigg Brathwaite scored 51 and contributed a century opening stand with John Campbell, Mayers stopped a mini-collapse with Jermaine Blackwood, and cruised on with Joshua Da Silva.
Da Silva was 26 not out after facing 106 balls.
Brathwaite and Campbell, from a shared 67 overnight, reached 100 together in the first hour, including a seven-ball over by Shoriful Islam.
But Shoriful ended the partnership when he nicked Campbell’s glove and dismissed him for 45.
Brathwaite brought up his 27th Test fifty from 105 balls, but added only one more run when he missed offspinner Mehidy Hasan Miraz and was bowled.
In the next over, Khaled Ahmed got Raymon Reifer and Nkrumah Bonner to play on to their stumps.
Three wickets in two overs energised Bangladesh and sent a shiver through West Indies, but Mayers and Blackwood conceded nothing else before and after lunch.
Blackwood played an anchor role, and Mayers gradually opened up to reach his fifty off 75 balls.
Their partnership was worth 116 just after tea when Blackwood misread Mehidy and was out leg before on 40 from 121 balls.
Mayers turned cautious again, but even after Bangladesh took the new ball, the batter switched to fearless when another milestone was in sight.
Mayers was in and out of the 90s in the space of six balls, bringing up his century with a six by pulling Shoriful into the stands over square leg.
His second century in his 13th test came from 150 balls.
By stumps he was on 126 after 180 balls, a large proportion driven through the covers, with more great support from wicketkeeper Da Silva. Their stand was on 92 from 33 overs.