Openers Tillakaratne Dilshan, with 108 not out, and Upul Tharanga, who hit an unbeaten 102, enjoyed their second 200-plus partnership of the tournament, wrapping up victory in Colombo with more than 10 overs to spare.
The win also allowed Muttiah Muralitharan, the most successful bowler in history, to extend his 19-year career by at least three more days with Sri Lanka, the 1996 champions, facing the Kiwis in Colombo on Tuesday.
England, who have been on the road virtually non-stop since embarking on their successful Ashes tour in October, made a dogged 229 for six in their 50 overs.
Jonathan Trott (86) and Eoin Morgan (50), who was dropped three times, provided much-needed backbone on a slow, flat R. Premadasa stadium pitch.
Trott fell in the 49th over, caught off Muralitharan who finished with 2-54, after a 115-ball innings which featured just two boundaries.
"We lost the toss but we started well with the ball," said Sri Lanka captain Kumar Sangakkara.
"The guys fought ha