Sri Lanka batsmen hit home the advantage and salvaged some pride for their team after the hosts battered Pakistan by 165 runs in the fifth and final ODI in Hambantota.
Pakistan went into the match with an unassailable 3-1 lead but the hosts looked determined to make a point, which they did by posting 368 for four, their highest ODI total against the visitors.
Tillakaratne Dilshan (62) became the fourth Sri Lankan batsman to score 10,000 ODI runs and Kusal Perera (116) hit his second 50-overs century, the openers scoring 164 runs in about 25 overs.
Capitalising on the flying start, skipper Angelo Mathews and Milinda Siriwardana hit breezy unbeaten half-centuries as they plundered 114 runs in the final 9.1 overs of the innings.
Pakistan, who won the preceding Test series as well, were never really in the chase, and were all out for 203 in the 38th over.
Skipper Azhar Ali (35) and Mohammad Hafeez (37) got the starts but they never had any substantial partnership which could have taken them anywhere near the target.
Off-spinner Sachithra Senanayake (3-39) was the pick of the Sri Lankan bowlers.
"We wanted to win this game but credit goes to Sri Lanka, they played really well," said Azhar.
"We didn't bowl that well but are happy with the series win. We played positive cricket, especially as a batting unit. The fielding was exceptional."
Hafeez, who scored 273 runs and took six wickets before being banned from bowling for an illegal action, was named man-of-the-series.
The teams now move to Colombo for two Twenty20 Internationals on Thursday and Saturday.
Sri Lanka 368-4 in 50 overs (Kusal Perera 116, Rahat 2-74)
Pakistan 203 all out in 37.2 overs (Hafeez 37, Senanayake 3-39)