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, 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.
More From This Section
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.
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.