The tourists, who lost the test series 2-0 and trailed the one-day series 3-0, won their first game of a difficult tour after teenager Umar Akmal scored a brilliant maiden century, powering Pakistan to a formidable 321 for five.
Akmal, the 19-year-old brother of wicket-keeper Kamran, smashed an unbeaten 102 off just 72 balls with five fours and four sixes.
Sri Lanka made a confident start with opener Upul Tharanga stroking 80 off 89 deliveries and skipper Kumar Sangakkara cracking 39 from 33 balls, but then struggled when the ball grew softer on a slow spinning pitch.
The hosts eventually collapsed in the middle overs with medium pacer Iftikhar Anjum claiming five for 30.
Off spinner Saeed Ajmal claimed two for 24 from seven overs and leg spinner Shahid Afridi took two for 40.
Sri Lanka were bowled out for 175 in 36.1 overs.
Earlier, Pakistan made the most out of a good batting pitch having won the toss with Kamran Akmal (57) and Imran Nazir (23) adding 61 for the first wicket.
Sri Lanka's slow bowlers fought back, reducing Pakistan from 106-1 to 130-4, but Umar Akmal then took centre stage with a magnificent display of hitting.
Captain Younus Khan provided support with a 89 from 111 balls, a more measured innings that included just four boundaries.
The fifth-wicket pair shared a match-winning 176-run partnership, plundering runs at a frenetic rate during the final overs of the innings.
Leg spinner Malinga Bandara was Sri Lanka's most economical and effective bowler, claiming two for 44 from his 10 overs.
Sri Lanka did not help their own cause by giving away 29 wides, 26 of which were delivered by Lasith Malinga.