At lunch on the second day the tourists were 385-5, with Kallis finally dismissed caught behind off leg-spinner Danish Kaneria.
AB de Villiers was unbeaten on 20 and Mark Boucher on nought at the interval.
The tourists resumed on 294-3 with Kallis -- dropped on 36 by wicketkeeper Kamran Akmal off Kaneria on Monday -- continuing to bat with authority against the spin-dominated Pakistan attack.
The luckless Kaneria did turn the ball but had to wait until his 29th over to claim his 199th Test wicket. The bounce undid Kallis, whose attempted cut landed in wicket-keeper Akmal's gloves.
Kallis, who added 170 for the third wicket with Hashim Amla (71) on the first day, hit 19 boundaries during his nearly five-hour vigil at the crease.
Kallis added another 73 runs for the fourth wicket with Ashwell Prince, who scored 36.
Kaneria landed his 200th Test wicket when Prince failed to keep a drive on the ground and the leg-spinner took a straightforward catch in his follow-through.
Kaneria, playing his 47th Test, is the sixth Pakistani bowler to take 200 or more wickets in the longer version of the game.
Pakistan, who were hit by the last-minute withdrawal of prolific batsman Mohammad Yousuf on Monday, received another blow on the second day when vice-captain and opener Salman Butt was hospitalised due to gastroenteritis.
"Butt had severe pain in his stomach and doctors fear it's gastroenteritis," said team manager Talat Ali, still unsure of whether Butt could bat on Tuesday.