Sri Lanka's fast bowlers exploited Pakistan's weakness against seam bowling by dismissing the home side for 165 to take control of the second Test on Wednesday.
Sri Lanka was 57-1 in reply, trailing by only 108 runs when umpires called off the day's play due to bad light eight overs before the scheduled close.
Dimuth Karunaratne hit seven fours in a quick-fire 32 before he fell to Junaid Khan but Kaushal Silva and Kumar Sangakkara guided Sri Lanka to stumps, with both on 12.
Nuwan Pradeep, with only three wickets in his last four tests, led the attack and took 3-62 with excellent backup from Shaminda Eranga, 2-25, and Suranga Lakmal, 2-45, after captain Angelo Mathews won the toss.
Pakistan opener Khurram Manzoor stood out with a gritty 73 in 3 1/2 hours before he succumbed in a sensational collapse, as Pakistan lost eight wickets for 58 runs.
"It wasn't easy out there, toss was vital because the pitch is not easy, it is helping seam bowlers," said Manzoor, who was under pressure to retain his place after scoring a combined 33 runs in his previous five test innings. "But whoever plays positively, he will score runs on this pitch."
Paksitan's collapse justified Sri Lanka's choice to go with three fast bowlers and dropping off-spinner Sachithra Senanayake after the pitch was left under cover due to rain on Tuesday and retained enough moisture in it for the fast bowlers.
Pradeep, out of Test cricket for a year, credited his time with his club and Sri Lanka A for improving his technique to trouble Pakistan by finding movement off the seam.
The signs were ominous for the batsmen quickly when opener Ahmed Shehzad should have been dismissed in the fifth over for nought but was dropped by Mathews in the slips off Lakmal.
But it didn't matter much as Pradeep in his third over brought one sharply into Shehzad and had him plumb leg before wicket for 3.
Pradeep could have had Mohammad Hafeez off the very next ball but Mahela Jayawardene couldn't hold onto a sharp low chance in the slips as Pakistan was restricted to 57-1 by lunch.
Manzoor and Hafeez added 50 runs for the second wicket, and in a brief counterattack hit five boundaries after lunch. Manzoor took three fours in Pradeep's first over after the break and Hafeez pulled and cut Rangana Herath for two boundaries in the next over.
But Hafeez was undone by a sharp Pradeep inswinger and was clean bowled for 21 at 78-2.
Pakistan's two century-makers in the drawn first Test - Younis Khan (13) and captain Misbah-ul-Haq (1) - also could not negotiate the sharp swing of Eranga, who had both of them caught behind within seven deliveries.
Lakmal left Pakistan in deep trouble just before tea when he found the outside edge of Manzoor and forced Asad Shafiq to drive uppishly into the safe hands of Silva at covers on 6.
Pradeep yet again missed out on his fourth scalp in the last over before tea when Karunaratne floored Bilawal Bhatti before he scored as Pakistan limped to 128-6 at tea.
Herath folded the innings quickly by claiming the last three wickets after the break as Bhatti remained unbeaten on 24 with three fours and a top-edged six.
Pakistan persisted with left-arm seamer Rahat Ali, who despite finishing wicketless in the first drawn Test, got the nod ahead of left-arm spinner Abdul Rehman.
Ali bowled too short of length and gave away 28 runs as Karunaratne dominated the first-wicket stand before he was trapped lbw by Khan.