Opener Shai Hope smashed an unbeaten 146 for West Indies to beat Bangladesh off the third-to-last ball and send their one-day international series to a decider on Tuesday.
Bangladesh made 255-7 and Hope single-handedly thwarted the hosts with a career-best ODI knock to hold together the West Indies' winning reply of 256-6 and keep the series alive.
Fighting elections in his country, Mashrafe Mortaza promises he won't be distracted during Windies ODIs
Bangladesh vs West Indies: No better opportunity to win ODI series trophy at home, says Mashrafe Mortaza
The third and final match is on Friday back at Sylhet.
Bangladesh looked set to secure a third straight bilateral series win when it exposed the West Indies tail at 185-6.
But Hope shared an unbeaten 71 off 64 balls with Keemo Paul for the seventh wicket, in which Paul contributed only 18.
"It was just to bat as deep as possible," Hope said. "We know Keemo has very good batting ability. I had full confidence in him.
"We just tried to rotate as best as possible. We knew the wicket was a bit difficult to come in and strike from ball one so he played a very crucial hand here to go over the line."
The West Indies needed 32 off the last 18 balls to win and scored 10, including a Hope six back over bowler Rubel Hossain.
The equation dropped to 22 off 12, and Hope brought victory in sight by hitting pacer Mustafizur Rahman for three boundaries — all of them from the same perfectly manufactured shot — in a 16-run penultimate over.
"It was a bit slow," Hope said of the pitch. "When the bowlers took some pace off, it was a lot more difficult to get bat on the ball especially against Fizz (Mustafizur). His off-cutters were quite difficult to get away in the crucial stage. The wicket wasn't the best for strokeplay but it was much better than the last game."
Paul ended up hitting the winning runs, as the West Indies finally beat Bangladesh on this tour after three heavy defeats in the tests and first one-dayer.
"We should celebrate a bit more because we didn't have much to celebrate in recent times," Hope said.
Hope's match-defining innings of 146 not out off 144 balls was laced with a dozen boundaries and three sixes. It was his third century.
An ordinary start didn't portend West Indies' finish.
Chadrapaul Hemraj, who replaced Keiran Powell, was first out for 3.
Hope found support from Darren Bravo (27) and Marlon Samuels (26), who ensured the West Indies didn't collapse as in the first ODI.
He and Bravo combined for 65 runs until Bravo was removed by fast bowler Hossain. Hope and Samuels shared 62 runs as they kept the asking run rate under control.
Once Mustafizur got Samuels caught by Mushfiqur Rahim, the Bangladesh bowlers took wickets at regular intervals.
But Hope remained unfazed. He brought up his third century with a single through cover point off 118 balls and kept growing with confidence. Paul finally gave him much-needed support, and they held their nerve.
Their platform was set by the West Indies fast bowlers, whose controlled aggression at the end prevented Bangladesh from causing havoc.
Bangladesh scored just 26 runs in the last five overs as fast bowlers Kemar Roach and Oshane Thomas varied their pace cleverly to curb the batsmen's aggression.
After being sent in to bat first, Bangladesh fell in trouble when opener Liton Das retired hurt because of an ankle injury, but he came back later to bat and made 8.
Imrul Kayes continued his horrible series, being dismissed for a duck before Tamim and Mushfiqur resisted.
They shared a 111-run stand but both of them were removed in three overs.
Just when West Indies appeared to take the control, Shakib and Mahmdullah (30) added 61 runs together to set up a late blitz.
But Thomas, with 3-54, and Roach, 1-39, put the squeeze on Bangladesh to prevent a blitz.