Tillakaratne Dilshan smashed a century in his 300th one-day international as Sri Lanka piled up 302-6 after choosing to bat in the seventh and final match against England in Colombo on Tuesday.
The opening batsman passed the 9,000-run mark in one-day internationals on his way to a stroke-filled 101, his 18th one-day century studded with nine boundaries and a six.
England, who have already conceded a decisive 2-4 lead in the series, will look for a consolation win ahead of the World Cup that starts in Australia and New Zealand on February 14.
Veterans Kumar Sangakkara and Mahela Jayawardene, playing their last one-day international on home soil, whetted the appetite of some 20,000 Sri Lankan fans at the Premadasa stadium before being dismissed.
Jayawardene had hit 28 off 22 balls when he pulled a short ball from Harry Gurney to the long-leg fielder. Sangakkara offered a tame catch to mid-wicket off Moeen Ali after making 33.
Jayawardene, who has already retired from Tests, will hang up his boots after the World Cup. Sangakkara too will quit one-dayers after the tournament, although he remains non-committal about his future in Tests.
Dilshan put on 55 for the first wicket with Jayawardene and 65 for the second with Sangakkara before adding 80 for the fourth with Dinesh Chandimal -- lifting Sri Lanka to 236-3 in the 44th over.
Dilshan pulled a full toss from Chris Jordan to Ali on the deep mid-wicket fence, but Chandimal (55 not out) and Thisara Perera (54 off 26 balls) boosted the total with a quickfire stand of 63 from 35 deliveries.
Ali and Jordan claimed two wickets each, but seamer Chris Woakes was hammered for 71 runs from his nine overs and off-spinner James Tredwell gave away 50 in seven. (AFP)