Dilshan passed the 9,000-run mark in one-day cricket on his way to a stroke-filled 101 to lead the hosts to a commanding 302-6 after they elected to bat in the day-night match in Colombo.
England were bowled out for 215 in 45.5 overs in reply after Dilshan's off-spin broke the tourists' back with the key wickets of Moeen Ali (0), Alex Hales (seven) and Eoin Morgan (four).
Joe Root top-scored with 80 but skipper Alastair Cook (32) and Chris Woakes (34) were the only other batsmen to cross 30 in a disappointing batting display by the tourists on the slow pitch.
The emphatic victory gave Sri Lanka the series 5-2 and left England searching for a winning formula ahead of the World Cup which opens in Australia and New Zealand on February 14.
The veteran pair of Kumar Sangakkara and Mahela Jayawardene could not have asked for a better parting gift in their last one-day international on home soil.
The duo whetted the appetite of some 20,000 Sri Lankan fans at the Premadasa stadium with some glorious strokeplay, but fell just when they looked set for a big score.
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 Ali after making 33.
But the fans roared with delight when Jayawardene, a part-time off-spinner who was handed the ball by skipper Angelo Mathews, had James Tredwell stumped by Sangakkara in his second over to finish the match.
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, whose 18th one-day century contained nine fours and a six, put on 55 for the first wicket with Jayawardene, 65 for the second with Sangakkara and 80 for the fourth with Dinesh Chandimal.
Dilshan pulled a full toss from Chris Jordan to Ali on the deep mid-wicket fence in the 44th over, 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 Woakes was hammered for 71 runs from his nine overs and off-spinner Tredwell gave away 50 in seven.
Like Sports on Facebook, follow @ETribuneSports on Twitter to stay informed and join in the conversation.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ