West Indies 274 for 5 (Lewis 103, Hope 84) beat Sri Lanka 273 for 8 (Gunathilaka 96, Hasaranga 47, Mohammed 3-47) by five wickets
In a game that the West Indies had dominated for large parts, Sri Lanka, who had been mediocre for most of the match, threatened to take it away with some clutch play towards the end of both innings, but some late hitting from Nicholas Pooran ensured that the platform laid by the opening pair of Shai Hope and Evin Lewis - who put on a record 192-run opening stand - was not wasted.
The win means West Indies take the three-match series 2-0 with a game to go, and register two consecutive ODI wins for the first time since 2014. For Sri Lanka, it leaves them with plenty to ponder, as their bowlers - more worryingly their spinners - were once again toothless for much of the proceedings.
Most of the credit for this win though must go to Hope and Lewis, whose budding partnership at the top of the order is proving to be a real source of optimism for the future. Set a not-inconsiderable target of 274, the pair went about the chase in the manner of two war veterans going about a game of paintball. Much as in the first ODI, risk-taking was kept to a minimum - though boundaries were accumulated when needed - and running between the wickets was frequent and efficient.
Aside from a tough return catch to Lakshan Sandakan, and some fairly close run-out opportunities, neither batsmen really ever gave the impression that the visiting bowlers were capable of troubling them. For Hope, this was just carrying on from his recent form against the Lankans, who he has now scored five consecutive ODI fifties against - also his fifth consecutive half century in ODIs overall. Lewis meanwhile continued his trend from the first game, of reining in his more attacking instincts, to grind down the Lankan attack - though his eight fours and four sixes, meant that more than half of the runs in his 123-ball 103 still came in boundaries.
It wasn't until Lewis fell, stumped as he came down the track to Sandakan and attempted a wild swing across line - one of the few low-percentage shots he attempted - that the West Indian chase began to stutter. His wicket brought an end to the highest stand by a West Indian opening pair against Sri Lanka in ODIs, and the fourth-highest partnership by a West Indian pair ever.
At that point the home side were on 192 for 1 in the 38th over, requiring 82 runs from 76 deliveries. However when Hope also fell an over later, holing out in the deep, it left two new batsmen at the crease.
The visitors, sensing an opportunity began to tighten things up, with the likes of Darren Bravo, Kieron Pollard and Fabian Allen, all losing their wickets in attempts to up the scoring rate. However, with Nuwan Pradeep missing his lengths at the death, Pooran's cameo made sure the hosts would just about make it across the finish line.
Pooran's knock incidentally was almost mirrored earlier in the day by Wanindu Hasaranga, who had almost single-handedly dragged Sri Lanka to a competitive total. His 31-ball 47 had sparked an innings that had for large parts been limping along - thanks to some exceptional West Indian bowling - to help his team climb to 273 for 8.
Having come in at the end of the 42nd over, Hasaranga's crucial cameo came with Sri Lanka waning at 204 for 6. After a circumspect start Hasaranga cut loose in the 47th over, taking Alzarri Joseph for a sweet hit over long-on. The next over he took Jason Holder for another two maximums, before then taking Romario Shepherd for a further two boundaries and six, as Sri Lanka stole 51 runs off the final five overs of the innings.
Prior to Hasaranga's intervention, much of Sri Lanka's innings had been defined by the West Indian bowlers, punctuated by Joseph's 2 for 42 and off-spinner Jason Mohammed's 3 for 47, with only Danushka Gunathilaka having looked capable of adding any urgency for the visitors.
Gunathilaka, who would go on to score a run-a-ball 96, was aided by Dinesh Chandimal and his 98-ball 71, in reviving a Sri Lankan innings that almost failed to ever get going. The pair came together after Sri Lanka had slumped to 50 for 3 midway through the ninth over.
Captain Dimuth Karunaratne fell early, chopping the ball on to his stumps off the excellent Joseph. Joseph would be in the thick of it once more a short while later, getting one to seam back in past Pathum Nissanka's inside edge to clip the top of off stump.
Then Oshada Fernando, failing to drive an Akeel Hosein delivery that gripped and spun, only managed to get a thick edge to first slip.
And so Gunathilaka and Chandimal began the rebuild, putting on a 100-run partnership off 128 deliveries. Gunathilaka, who was by far the most fluent of Sri Lanka's batsmen aside from Hasaranga, was nevertheless shackled by the need to consolidate in the middle overs. In an innings that included 10 fours and three sixes, only three of those would come beyond the 15th over; and just as he would have been looking to accelerate, he was castled by a flatter delivery by Mohammed that sped through.
Following Gunathilaka's dismissal in the 30th over, Sri Lanka would score just 54 runs until Hasaranga's arrival 12 overs later. In that period Mohammed would prove particularly difficult to get away also accounting for the wickets of Chandimal and Ashen Bandara, and on another day it would have been enough to limit Sri Lanka's total further if not for Hasaranga's late charge.