Shai Hope's superb century gave West Indies its first win of its tour to Bangladesh, levelling the ODI series at 1-1 in the process.
The Windies had lost all three competitive matches against Bangladesh prior to Tuesday's second 50-over clash, but it finally secured a victory as Hope guided it home by four wickets in Mirpur.
Hope sizzles with the bat
Needing 256 to win, Hope looked to have put the tourist in touch of the win with his third ODI century, but a late wobble saw it still needing 32 off the final three overs.
Hope was not to be denied his role as matchwinner, though, as he blasted 14 off the penultimate set of six to give him a career-best 146 not out and West Indies a much-needed triumph.
The loss of Chandrapaul Hemraj for three could have sparked an early batting collapse but unlike in previous matches, the Windies stepped up to the plate, with Hope the key to its win.
His stunning century came at just over a run a ball and included 12 fours and three maximums, anchoring the innings from start to finish.
Around him Darren Bravo (27), Marlon Samuels (26) and Shimron Hetmyer (14) made important contributions in the middle order, but three late wickets gave Bangladesh a sniff of victory.
With five overs remaining West Indies needed 38 and tight sets of six from Shakib Al Hasan and Mustafizur Rahman saw that target reduced by just six runs.
Hope settled any nerves with a huge six off Rubel Hossain, before punishing Mustafizur in the penultimate over with a string of boundaries to leave Keemo Paul (18no) to hit the winning runs with two balls to spare.
Big names to the fore
Hope's heroics came after Bangladesh finished its 50 overs on 255-7, the host recovering from the early loss of Imrul Kayes (0) to set a competitive total.
Tamim Iqbal (50) played a controlled innings at the top of the order, the opener ably supported by Mushfiqur Rahim (62) after Liton Das (8) was taken for scans on an injured ankle.
Das was carried off the field on a stretcher after being struck on the foot by a leg-stump yorker from Oshane Thomas (3-54) but was able to return later in the innings.
In his absence Bangladesh's big names all contributed with Shakib (65) and Mahmudullah (30) both adding to the good work of Tamim and Mushfiqur.
But it was not enough as Hope ensured Friday's third and final ODI in Sylhet will be a decider.