Dhananjaya de Silva and skipper Dimuth Karunaratne, who batted through pain from a back injury, hit half-centuries to help Sri Lanka stretch their second-innings lead to 444 in the second Test on Wednesday.
The hosts reached 297 for seven at lunch after they resumed day four on 176-5 in Galle. De Silva, on 84, and Ramesh Mendis, on eight, were batting at the break.
Overnight batsmen De Silva and the left-handed Karunaratne, who made 61, put together 126 runs to keep the opposition bowlers at bay until Nauman Ali struck with the first wicket of the morning session.
Karunaratne had escaped two close calls, which were unsuccessfully reviewed by Pakistan, off Nauman's left-arm spin but finally fell to the same bowler, caught at short leg where Abdullah Shafique took a sharp reflex catch.
Karunaratne, who had back spasms and did not field in the Pakistan innings, got help from the physio during his two hours and 45 minutes stay at the crease as he went past 6,000 Test runs.
De Silva stood firm despite losing debutant left-hander Dunith Wellalage for 18, caught behind off left-arm spinner Mohammad Nawaz.
Sri Lanka fought back from 117-5 in their effort to hand Pakistan a big target, as they look to bounce back from their opening loss in the two-match series.
Pakistan fell behind Sri Lanka by 147 runs after being bowled out for 231 in response to the hosts' first innings total of 378.
Pakistan's highest chase in Sri Lanka came in 2015, when they made a target of 377 in Pallekele. The tourists chased down a Galle record of 342 in this series' opener.
© Agence France-Presse