All-rounder Mohammad Hafeez made up for a year-long ban on bowling due to a suspect action with a polished 54 as Pakistan piled up 316-4 after electing to bat in the day-night match.
Leg-spinner Yasir then shone with the ball as Sri Lanka were bundled out for 181 in 41.1 overs on a slow pitch at the Premadasa stadium.
The match was interrupted for 30 minutes in the second session with Sri Lanka on 158-7 when stones thrown apparently from outside the stadium landed on the field near a Pakistani fielder.
Match referee Javagal Srinath of India immediately ordered the players off the field as anti-riot police squads evacuated spectators from two blocks of stands near the giant scoreboard.
The match, which was witnessed by Pakistan batting great Zaheer Abbas -- the current president of the International Cricket Council (ICC) -- resumed after the short break and Pakistan completed a facile win to take a 2-1 lead in the five-match series.
Lahiru Thirimanne, who top-scored with 56, was the only Sri Lankan batsman to offer resistance as the rest of the batting collapsed. Opener Kusal Perera was the next highest contributor with 20.
Sri Lankan captain Angelo Mathews admitted his team was outplayed by Pakistan.
"I am pretty disappointed," he said. "But it must be said that Pakistan outplayed us in all three departments."
"The pitch helped the spinners in the second innings, but we need to improve in batting, bowling and fielding. We can't afford to panic. Just need to have faith in the boys."
Hafeez's fourth score of 50-plus in the last six one-day innings built on a 93-run opening stand between Ahmed Shehzad (44) and skipper Azhar Ali (49).
Hafeez, 34, had on Friday been banned from bowling for a year by the ICC after his action was ruled to be illegal -- for the second time in the last eight months.
But the former captain ensured he contributed with the bat with a stroke-filled half-century to follow his 103 in the opening match of the series.
Sarfraz, promoted to number four from lower down the order, justified the captain's faith with seven boundaries in his 74-ball knock.
The gutsy wicket-keeper put on 72 for the third wicket with Hafeez and 61 for the fourth with Shoaib Malik to boost the total, before he was run out in the 45th over.
Malik, watched from the stands by his tennis-playing Indian wife Sania Mirza, struck an unbeaten 42 from 29 balls and shared an unbroken fifth-wicket stand of 59 with Mohammad Rizwan (35 not out).
The pair smashed 21 runs in the last over, bowled by Lasith Malinga, to leave Sri Lanka chasing the highest total in the series so far.