Sri Lanka seized control of the second Test in Colombo on Sunday by bowling Pakistan out for 90, the tourists' lowest total against Sri Lanka.
Seamer Nuwan Kulasekara was the chief destroyer, triggering the collapse with the new ball and finishing with four for 21 from nine overs.
Spinner Ajantha Mendis finished off the innings, scything through the lower order to claim three for 20 from 10 overs. Sri Lanka needed just 36 overs to bowl out Pakistan.
Former captain Shoaib Malik was the only batsman to offer resistance, scoring an unbeaten 39.
Sri Lanka, with skipper Kumar Sangakkara unbeaten on 81, replied strongly to finish on 164 for three, a lead of 74.
Pakistan appeared to have claimed an early advantage when they won the toss on a good batting pitch, albeit a venue that traditionally offers assistance to the fast bowlers in the first session of a Test match.
However, they were rocked by superb new ball bowling from Kulasekara and his new ball partner Thilan Thushara, who claimed two for 23.
Pakistan lost the wickets of Khurram Manzoor (three), skipper Younis Khan (nought), Mohammad Yousuf (10) and Misbah ul Haq (nought) in the first 45 minutes of play.
Pakistan rallied briefly with Fawad Alam (16), who replaced the out-of-form Salman Butt, adding 32 with Shoaib Malik. The left-handed Alam fell when he shuffled across his stumps and Angelo Mathews seized on this technical weakness with an inswinger that trapped him lbw.
Wicket-keeper Kamran Akmal fell just before lunch, slashing at a wide delivery from Thushara to be caught behind for nine.
Having reached lunch on 74 for six, they slumped deeper into trouble after the break as Kulasekara pinned Abdur Rauf lbw for a duck. Mendis then worked his magic with the tail.
Sri Lanka won the first match of this three-Test series in Galle by 50 runs.