Bangladesh continued their dominance over the West Indies with a record run chase and a seven-wicket win to move up to fifth in the World Cup standings.
Set 322 to win on a small Taunton pitch, Shakib Al Hasan scored his second century of the tournament as Bangladesh pulled off their highest chase in ODI cricket.
No side had successfully chased more than 248 in this tournament until now. It was just short of Ireland's record chase in World Cup history when they scored 329 for seven to beat England at Bangalore in 2011, but it was good enough for second spot.
Bangladesh's victory revives their hopes of sneaking into the top four and booking a semi-final place, while virtually ending the West Indies' ambitions of doing so at the same time.
Bangladesh’s pursuit was bold, brash and impressive. Led first by Tamim Iqbal and then taken up by the in-form Shakib Al Hasan, who also picked up two wickets with his left-arm spin.
In the end, the second highest successful chase in an ICC Cricket World Cup was achieved with seven wickets and 8.3 overs to spare. Shakib blasted 124 from 99 balls who moved past Australia's Aaron Finch on 84 to become the competition's top run scorer and Liton Das hit a superb 94 from 69 deliveries to lead Bangladesh at Taunton.
Shakib's unbroken partnership of 189 with Liton Das - the second highest for the fourth-wicket in World Cup history - steadied the ship after Bangladesh had briefly wobbled at 133 for three.
Das was brought into the side after missing the England defeat, but his 69-ball 94 not out was a superb innings it its own right as the West Indies pace attack were punished for bowling too short.
After a flying start from Tamim Iqbal and Soumya Sarkar (29), Bangladesh were in cruise control in reaching 118 for one.
But the game threatened to turn on its head after a wonderful piece of fielding from Sheldon Cottrell off his own bowling. Tamim, on 48, played the ball back to Cottrell and the bowler promptly threw down the stumps, with the batsman's despairing dive not enough to save him. Mushfiqur Rahim soon fell to a legside catch behind off Oshane Thomas and the West Indies sensed an opening.
But that was brutally snuffed out as Shakib became the second Bangladesh batsman in ODI cricket to reach 6,000 runs and underline his claims to be regarded as the best white-ball player in the world right now.
Chris Gayle was back on familiar ground but he scratched around before Mohammed Saifuddin induced an edge that wicketkeeper Mushfiqur Rahim gratefully accepted.
A 13-ball duck was the second of Gayle's World Cup career, both against Bangladesh.
West Indies produced the lowest scoring power play of the tournament - 32 for one - but Evin Lewis (70) and Shai Hope (96) put on 116 for the second wicket.
The real impetus, however, came from Shimron Hetmyer and skipper Jason Holder.
Hetmyer matched the 25-ball effort from Australia's Alex Carey as the fastest 50 in the tournament, while Holder struck 33 from 15 balls before Hope holed out in the deep to fall four short of his century.
However, Bangladesh strolled to victory with 51 balls to spare, and claim not only their seventh win in eight games against the West Indies but a first in World Cup competition.