Fast-improving Maaz Sadaqat (96) and captain Sahibzada Farhan (73) both profited from dropped catches to score second successive rapid half-centuries in Pakistan's 3-215 in Rawalpindi on Sunday. Pakistan's highest-ever T20 score is 6-232 against England in 2021.
Pakistan speedster Mohammad Imran, playing only his second T20, then did the damage with incisive swing bowling. He took 3-11 in four unchanged overs as Sri Lanka could only manage 7-133 to lose their third successive T20 series away from home.
Sri Lanka lost 2-1 in the West Indies and came to Pakistan after being swept 3-0 by England.
Rawalpindi, where Pakistan won the first match by four wickets, will host the final game on Tuesday, before England join the two teams for the ODI tri-series, starting next Sunday.
Sloppy Sri Lanka fielding in the power play allowed Farhan to accelerate the scoring with left-handed Sadaqat, who recently scored back-to-back centuries in the Caribbean Premier League.
Maheesh Theekshana dropped a difficult chance from Farhan at mid-wicket in Binura Fernando's second over, before Sineth Jayawardene floored an easy catch when the Pakistan skipper was on 11.
The two let-offs cost Sri Lanka heavily as Farhan smashed five sixes and four boundaries.
Theekshana caught Farhan in the 15th over after the batter sliced Dasun Shanaka's delivery, but couldn't clear the fielder at the boundary.
Nuwan Thushara couldn't hold on to a return catch that should have ended Sadaqat's knock at 44. Sadaqat hit seven sixes and six boundaries in his 51-ball innings.
Eshan Malinga (1-41) denied Sadaqat his century in the final over when Sadaqat holed out to deep cover off the final ball of the innings.
"I was trying to make the most of my form," Sadaqat said. "I had belief in myself that I can hit the ball … I play with positive intent and pick my balls to hit boundaries."
Fast bowler Salman Mirza, the only change Pakistan made from the first game, had Lahiru Udara caught behind in the first over of Sri Lanka's run chase.
Imran then picked up three quick wickets -Jayawardene (22), captain Kusal Mendis (9) and Sahan Arachchige (0) - as Sri Lanka, who chose to field first, slipped to 4-49 in the eighth over and couldn't recover.
Theekshana top-scored for his team with an unbeaten 32 off 26 balls, and Chamindu Wickramasinghe made 29 off 24.
"Batters need to take responsibility including me," skipper Mendis said.
"It was a batting pitch and we needed to score 200 runs at least."