Colombo: Rain played spoilsport, causing the match to be called off after West Indies had finished at 245/5. Windies opener Adrian Barath scored his maiden ODI hundred in the first one-day international on Monday.
The 20-year-old opener cracked two sixes and eight fours in a 129-ball 113 to bolster the innings after the tourists lost two wickets, including that of hard-hitting Chris Gayle, for 42 runs in Colombo.
Barath steadied the innings with a 165-run stand for the third wicket with Ramnaresh Sarwan, who hit an impressive 75 for his 34th half-century in one-day internationals.
The West Indies were set for a final onslaught after reaching 206-2 in 43 overs, but paceman Lasith Malinga (3-51) restricted the tourists with three quick wickets, including those of Sarwan and Barath in the same over.
The World Cup, co-hosted by India, Sri Lanka and Bangladesh, starts on February 19.
The West Indies made a poor start after winning the toss as Gayle (four) was caught behind off paceman Nuwan Kulasekara in the day's fourth over. Darren Bravo also did not last long, making eight before being run out.
Barath, playing only his sixth one-dayer, went for big shots after completing his half-century as he swung part-time spinner Tillakaratne Dilshan and seamer Angelo Mathews over mid-wicket for sixes.
The opener reached his hundred in style, driving unorthodox spinner Ajantha Mendis for his seventh four.
Sri Lanka then had to wait for than 30 overs to get another wicket as Barath and Sarwan batted sensibly.
Malinga broke the stand when he had Sarwan caught by Chamara Kapugedera at long-on after the batsman had hit one six and four boundaries in his 100-ball knock. The same combination accounted for Barath a ball later.
West Indies 245 for 5 (Barath 113, Sarwan 75, Malinga 3-51)