South Africa exerted pressure throughout proceedings on Day 4 as Indian players were first made to struggle with the ball and later made to fight hard to survive with the bat.
Images courtesy: AFP and AP
Kallis eventually finished with 115 runs and surpassed Rahul Dravid as the third-highest run-getter in Tests.
He was removed by Ravindra Jadeja.
Once the partnership ended though, South African innings folded with Jadeja completing his career-best figures of 6/138.
Proteas scored 500 and had a lead of 166.
Shikhar Dhawan too was tested by South Africa and he eventually fell to a blinding catch by du Plessis, on a personal score of 19.
India ended the day on 68/2 with another 98 needed to erase deficit.