West Indies, put in to bat and spearheaded by Stuart Williams and Brian Lara, reached their total for the loss of seven wickets in an innings reduced to 49 overs because of rain.
Sri Lanka, the World Cup holders, lost early wickets as they attempted the chase, with the opening batsman Maravan Atapattu falling to Courtney Walsh for one and Aravinda de Silva losing his wicket to Curtly Ambrose for seven. Both batsmen were caught by Carl Hooper.
Hashan Tillakaratne then fell to Laurie Williams for two, leaving the visitors in trouble at 39 for three.
A fourth-wicket parnership of 50 between Ranatunga, who scored 53, and the opener Sanath Jayasuriya, who made 44, pulled Sri Lanka back into contention, but they were never able to build an adequate scoring rate and ended their 49 overs on 248 for the loss of eight wickets.
Earlier a scintillating third-wicket partnership of 124 between Williams, who made a one-day personal best total of 91, and Lara, who thumped 68, put the home side in a commanding position.
The pair took the score from 46 for two to 170 for three before the left- arm spin of Jayasuriya, who took five for 59, got the breakthrough.
Williams hit 12 fours in his 107- ball innings and Lara hit six fours and two sixes in his run-a-ball innings.
ONE-DAY INTERNATIONAL (Port-of-Spain, Trin) West Indies 283 for 7 (49 overs; S Williams 90, B Lara 67; S Jayasuriya 5-58); Sri Lanka 248 for 8 (49 overs; A Ranatunga 53, K Dharmasena 51no). West Indies won by 35 runs.Reuse content