Hope shared 71-run in an unbroken seventh wicket stand with Keemo Paul to help West Indies get their first victory on the tour and stay alive in the series after they suffered a five-wicket loss in the opening match on Sunday.
Paul, who remained unbeaten on 18, pushed spinner Mahmudullah towards midwicket to complete the victory.
The fate of the game was hanging in the balance until Hope struck three fours off pace bowler Mustafizur Rahman in the penultimate over.
Hope, who has now three centuries in ODIs, hit 12 fours and three sixes in his innings.
“I just kept backing myself and knew that as long as I bat till the end, we will win. I asked Keemo to bat deep. It wasn’t an easy wicket in the beginning,” man of the match Hope said.
Rubel Hossain and Mustafizur claimed two wickets each for Bangladesh giving away 57 and 63 runs respectively.
Shakib Al Hasan, Mushfiqur Rahim and Tamim Iqbal earlier each scored a half-century to steer Bangladesh to a decent total.
Shakib top-scored with 65 off 62 deliveries while Mushfiqur and Tamim made 62 and 50 respectively after West Indies invited the hosts to bat first.
Mushfiqur and Tamim laid the foundation of the innings with a 111-run second wicket stand after Oshane Thomas worked up lively pace early in the innings.
Thomas, who returned with bowling figures of 3/54, forced opener Liton Das to leave the field with a toe injury before handing Imrul Kayes a duck for West Indies’ first breakthrough.
Leg-spinner Devendra Bishoo dismissed Tamim, who faced 63 balls, to break his partnership with Mushfiqur, who soon became the second victim of Thomas.
Shakib, who smashed six fours and a six, then guided the lower-order to give Bangladesh a competitive score.
“It was a 50-50 match in the end, but we couldn’t hold onto the pressure. It was a good match. Hopefully we’ll come back strong in the next game,” said Bangladesh captain Mashrafe Mortaza.
The third and final match of the series will be held in Sylhet on Friday.
(With AFP inputs)