Sri Lanka all but sealed their passage to the Tri-Nations series final after Kumar Sangakkara inspired a 39-run Duckworth/Lewis win over West Indies.
In a contest that was carried over from yesterday due to the wet conditions, Sangakkara stood firm throughout the reserve day to finish unbeaten on 90 off 95 balls and help the tourists to 219 for eight off their 41 overs.
Forced to chase a revised target of 230 from the same number of overs, the Windies ultimately came up short to finish on 190 for nine despite battling half-centuries from Darren Bravo and Lendl Simmons.
Angelo Mathews' men top the standings on nine points and would need to lose by a sizeable margin against India tomorrow to miss out on a place in Thursday's final.
They limped to 60 for three off 19 overs last night before rain forced the teams off and the start of today's play was also delayed by more downpours.
When the teams were finally able to get on the field, the match had been reduced to 45 overs per side and a later shower shaved another four off.
In the play that was possible, Sangakkara showed his class as he collected his 76th one-day international half-century.
Lahiru Thirimanne chipped in with 23 and Mathews made 30 as Sri Lanka eventually posted a decent total despite Kemar Roach claiming 4-27.
The home side made a sloppy start, slipping to 31 for four in the ninth over, with Mathews and Shaminda Eranga picking up two wickets apiece.
Bravo and Simmons put on 123 for the fifth wicket to give the Windies hope, but the latter departed for 67 and the former 70 as Sri Lanka edged to a crucial victory.