Dhammika Prasad chipped in with two wickets as the hosts bowled Pakistan out for 102 and then surpassed the Duckworth-Lewis target of 101 in the 19th over of a one-sided game in Dambulla.
An hour-long rain interruption after Pakistan had slumped to 81-8 in the 26th over of the first session forced the umpires to reduce the game to 48-overs-a-side.
Sri Lanka galloped home in style to build on the 2-0 sweep in the preceding Test series and left Pakistan searching for answers ahead of the World Cup less than six months away.
Dilshan cut Shahid Afridi to the fence to bring up his half-century and also seal his team's easy win.
Also Read
Fawad Alam top-scored for Pakistan with an unbeaten 38, but eight batsmen failed to reach double figures as the tourists crumbled in 32.1 overs after electing to bat on the slow wicket.
It was Pakistan's lowest one-day total on Sri Lankan soil, falling below the 116 they made against New Zealand at the same venue in 2003.
Pakistan never recovered after losing opener Sharjeel Khan in the third over, caught at second slip off Prasad.
The third wicket fell at the same total when Lasith Malinga had Mohammad Hafeez leg-before for one as the TV umpire upheld the decision following a review by the batsman.
It soon became 55-5 by the 19th over when skipper Misbah-ul Haq was run out for 18 by a direct throw from Dilshan and Umar Akmal holed out off Perera for seven.