Azhar Ali joined Mohammad Hafeez in making a big hundred as Pakistan strengthened their position on a shortened day two of the second Test in Colombo.
Ali was out for 157 shortly before persistent rain enforced an early finish as Pakistan reached 488-4 in their first innings.
Azhar was Suraj Randiv's first victim of the day shortly before the players went off, taking an early tea but not re-emerging.
Mohammad Hafeez fell just four short of a double century as Pakistan dominated between interruptions, with rain forcing a stoppage of more than two hours earlier in the day.
Resuming on 334-1 in the morning, the tourists had moved on to 365 when Rangana Herath knocked back Hafeez's leg stump after the batsman had gone for a sweep.
It was a bold shot to play when in sight of a double century with Hafeez's innings of 196 coming off 331 deliveries and including 20 boundaries and one six.
Azhar reaches three figures
Hafeez's removal brought to an end a stand of 287 with Azhar who had resumed the day on 92. Azhar brought up his century shortly after Hafeez's exit when he crunched a wide delivery from Nuwan Pradeep for four.
However, rain intervened and a break of two hours 12 minutes ensued before play resumed.
Younus Khan and Azhar had put on 70 when the former was out lbw to Herath after making 32 with Pakistan 435-3 at that point.
Azhar continued and brought up his 150 with a single off Herath which he worked towards long-on.
But he was to fall shortly before tea having added seven further runs when he attempted a reverse sweep but could only loop the ball to Nuwan Kulasekara at point - his 157 came from 295 deliveries and included nine boundaries.
Pakistan are looking to level up the series with Sri Lanka after the hosts enjoyed a four-day victory in the opening Test.