Fawad Alam’s unbeaten 38 was the highest score in their embarrassing batting capitulation that saw only three batsmen reach double digits.
Set a revised 101-run victory target in 48 overs following a rain-intervention, Sri Lanka lost three wickets before romping home with Tillakaratne Dilshan (50 not out) scoring with the kind of fluency none of the Pakistani batsmen could display.
Earlier, Pakistan captain Misbah-ul-Haq was left to rue his decision to bat first at the Rangiri Dambulla International Stadium as his team lost the top half of their batting order to reach 55 in the 19th over.
Dhammika Prasad dismissed openers Sharjeel Khan and Ahmed Shehzad cheaply to deny Pakistan a strong start and Lasith Malinga trapped Mohammad Hafeez leg before to further wreck the top order.
Hafeez was not convinced by the umpire’s call and asked for a review but could not get the decision overturned and the visitors slumped to 14-3 in the eighth over.
Their innings never got any momentum but Misbah and Alam at least offered some resistance which was broken by Dilshan’s accurate throw from point that sent back the Pakistan captain.
Umar Akmal hit Perera for a six but the bowler exacted revenge with the next delivery which the batsman could only top edge to perish.
Perera destroyed Pakistan’s middle order with his four-wicket burst while also taking a smart running catch to send back Shahid Afridi, who had stepped out to hit leg-spinner Seekkuge Prasanna.
Reeling at 81-8 from 26 overs, the respite for Pakistan finally came in the form of rain which forced the players off.
Their resistance, however, did not last long once play resumed and spinner Rangana Herath rearranged Mohammad Irfan’s stumps with a flighted delivery to end their innings.
The defeat marked the end of Pakistan’s disappointing tour of Sri Lanka where they lost both the tests preceding the one-day series.
(Reporting by Amlan Chakraborty; editing by Patrick Johnston)