Kumar Sangakkara crafted a superb, unbeaten 90 to lift the visitors to a competitive 219 for eight in a match forced into the reserve day because of the elements and reduced to 41 overs-per-side.
Half-centuries by Darren Bravo (70) and Lendl Simmons (67) then threatened to take the home team to a revised target of 230 before a sense of haste in the midst of light rain and the cooler heads of the Sri Lankans saw the West Indies restricted to 190 for nine in reply.
While the result pushes Sri Lanka to the top of the standings ahead of the Caribbean side by virtue of a better net run-rate, a victory for India over Angelo Mathews' team in the final preliminary match on Tuesday will result in the calculators again being deployed to determine the qualifiers for Thursday's final.
Sangakkara claimed the Man-of-the-Match award for his excellent innings, but Mathews also made vital contributions with bat and ball in ensuring his side avenged the six-wicket defeat suffered at the hands of the West Indies in the opening match of the tournament in Kingston ten days earlier.
His 30 off 27 balls gave the innings important impetus towards the end and figures of four for 29, including the vital scalp of Chris Gayle at the start of the West Indies chase, proved critical in completing victory.
Gayle's demise triggered a slide with the West Indies reduced to 31 for four and seemingly out of contention. However, Bravo found a solid partner in Lendl Simmons, the man drafted into the team as a replacement for suspended regular captain Dwayne Bravo.
After a pedestrian start, the pair accelerated impressively and were lifting the West Indies to within reach of the target when a loss of concentration tilted the balance decisively.
Conscious they were still behind on the D/L Method and concerned that rain was about to return, the pair lost their focus and when Simmons sliced a catch to deep cover off Shaminda Eranga, the second collapse of the innings was in motion.
Five wickets fell for 23 runs, leaving the last pair of Kemar Roach and Tino Best to ensure that, while defeat could not be avoided, they at least prevented the Sri Lankans claiming another bonus point.
Earlier, Roach was the most successful of the West Indies bowlers with four for 27 amid Sri Lanka's late batting surge, an effort masterminded by the experienced Sangakkara.
Staying focused on the task at hand, firstly with overnight partner Lahiru Thirimanne and playing with his trademark fluency, Sangakkara stepped up a gear, displaying a sense of adventure and taking considerably more risks in capitalising on wayward and indisciplined West Indies bowling.
A total of 31 extras contributed generously towards the Sri Lankan effort, a tally that included 24 wides and three no-balls.
"We were all over the shop and you can't really set fields for bad bowling. The number of extras conceded as well was totally unacceptable," was the frank admission of stand-in West Indies captain Kieron Pollard after it was all over.
"Bravo and Simmons kept us in the game when we batted, but if we're totally honest about it, we - myself included - haven't batted well as a team in this tournament."
Sangakkara's 95-ball knock, his 76th half-century in one-day international cricket, included one six and six fours but was defined more by trademark timing, placement and a sensible appreciation of the circumstances than the hell-for-leather hitting usually associated with the final stages of a limited-over match.
"If you hang in there, it becomes much easier to score runs on a pitch like," he observed after receiving the Man of the Match award. "When batting first, it's better to absorb the pressure and then look to accelerate later. The support from the other batsmen was really important."
Unfortunately for the West Indies, Bravo and Simmons, as well as they played, failed to follow suit.