Bangladesh rode on Aftab Ahmed's brisk half-century (59) to reach a comfortable 95-1 Wednesday before crashing against the pace-spin combination on a batting track in the day-night game.
The West Indies were indebted to paceman Corey Collymore and off-spinner Marlon Samuels for bouncing back into the match. The duo shared four wickets in the space of just 12 runs in middle overs to neutralise Ahmed's superb effort.
All-rounder Dwayne Bravo then ruined Bangladesh's hopes of a recovery by grabbing three wickets, including two late in the innings, to finish with 3-14 off 10 tidy overs.
Left-handed opener Shahriar Nafees (38) and wicket-keeper Khaled Mashud (22 not out) were the other batsmen to reach double-figures in an inconsistent Bangladeshi batting performance.
The West Indies are just one win away from qualifying for the main draw. They have already beaten Zimbabwe by nine wickets in their previous match at Ahmedabad on Sunday.
The Bangladeshi middle-order batting wobbled, with Saqibul Hasan and skipper Habibul Bashar falling for ducks off successive deliveries from Collymore and Farhad Reza contributing just seven.
Bashar, his team's leading scorer, has yet to score in two matches of the ongoing tournament. He had lasted just two balls during his team's defeat in the previous game against Sri Lanka at Mohali.
Bangladesh owed their early supremacy to Ahmed, who struck two sixes and seven fours in his seventh half-century before being caught by Shivnarine Chanderpaul at long-on off Samuels.
Ahmed, dropped on 15 by Samuels off paceman Jerome Taylor, made the most of the opportunity and punished the West Indies attack during his aggressive knock.
He struck three fours in a Taylor over and then hooked the same bowler for a six. His second six came off seamer Ian Bradshaw.
Ahmed put on 85 for the second wicket off 93 balls with Nafees, but this was the only period when Bangladesh looked like setting a stiff target for the West Indies.
Fall of wickets: 1-10 (Ashraful), 2-95 (Nafees), 3-96 (Hasan), 4-96 (Bashar), 5-107 (Ahmed), 6-111 (Reza), 7-125 (Rafique), 8-132 (Mortaza), 9-151 (Razzak).
Umpires: Billy Bowden (NZL) and Simon Taufel (AUS)
TV umpire: Steve Bucknor (WIS)
Match referee: Ranjan Madugalle (SRI)