Cape Town - Tillakaratne Dilshan struck his 18th century in his 300th one-day international and Thisara Perera smashed 54 off 26 balls to steer Sri Lanka to 302-6 against England in the seventh and final match on Tuesday.
Dilshan hit nine boundaries and a six in his 124-ball innings. Dinesh Chandimal was unbeaten on 55 off 50 deliveries.
Mahela Jayawardene was out for 28 in his final international innings at home when he hit left-arm fast bowler Harry Gurney straight to long leg. Kumar Sangakkara, who has showed imperious form through the series, also threw away his wicket in his final ODI at home, sending a full toss to midwicket on 33.
Both players are to retire from limited-overs cricket after next year's World Cup. Jayawardene has already retired from tests.
Offspinner Moeen Ali returned the best bowling figures of 2-39.