The hosts restricted the West Indies to 301 for nine while chasing a target of 308 despite a late cameo from number seven Fabian Allen who hit 37 off 15 balls.
Angelo Mathews claimed four wickets to set up the win after a strong batting performance led by Kusal Mendis (55) and Dhananjaya de Silva (51) steered Sri Lanka to 307 all out in 50 overs.
The two teams will now play two Twenty20 internationals on Wednesday and Friday in Pallekele.