Sri Lankan spinners Rangana Herath and Dilruwan Perera shared six wickets between them as Pakistan were dismissed for 262 on the third day of the second day-night Test in Dubai on Sunday.
Perera took 3-72 while Herath recorded figures of 3-84 as Pakistani batsmen once again flopped on a batting friendly Dubai Stadium pitch, losing their last six wickets for 82 runs.
It was 21 runs short of the follow-on mark but Sri Lanka did not enforce it.
It came in total contrast to Sri Lanka's batsmen who piled up 482 in their first innings, taking a big 220-run lead with opener Dimuth Karunaratne notching a career-best 196.
Only Azhar Ali with 59 and Haris Sohail (56) offered some resistance during a battling fifth-wicket stand of 71 that lifted Pakistan from a struggling 109 for 4.
Herath trapped Ali leg-before and reviewed it to overturn a not-out decision, triggering the collapse. Ali hit six boundaries in his patient knock.
Sohail was the eighth wicket to fall, trapped in front by Perera to end any hopes of Pakistan reaching a respectable total.
Skipper Sarfraz Ahmed made 14 before he miscued a sweep and was caught off Perera.
Paceman Lahiru Gamage took his first wicket in Test cricket when he bowled Shan Masood through the gate after the opener had made 16.
Sami Aslam was trapped leg before by off-spinner Perera for 39 to leave Pakistan two down with 65 runs on the board.
Asad Shafiq fell for 12. Sri Lanka lead the two-match series 1-0.