South Africa reach 121 for five at lunch
Harbhajan was the pick of the Indian bowlers with four wickets while Zaheer chipped in with one as the hosts added 69 runs and lost three key wickets in an absorbing pre-lunch session.
Kallis, defying a rib injury, was batting on 33 and Ashwell Prince on 15 at the lunch break with South Africa having a lead of 119 runs.
Resuming at the overnight score of 52 for two, the South Africans plunged into trouble straightaway with Harbhajan Singh removing Alviro Petersen (22) and Hashim Amla (2) in quick succession.
The wily off-spinner struck in his very first over, second of the day, by getting rid of Petersen, with a ball that did quite a bit after landing on the rough just outside the off stump.
Petersen went on the backfoot and tried to defend the ball but missed it completely to be trapped leg before wicket.
Kallis, who did not bowl during India`s first innings because of the rib injury, came into bat and immediately went into an attacking mode by playing his strokes.
Realising that Harbhajan was getting a lot of turn from the rough, Kallis used the reverse sweep to counter the spinner. He hit two boundaries by reverse sweeping, prompting Indian captain Mahendra Singh Dhoni to post a fielder for that shot.
The hosts suffered a big jolt when Amla, who has been in very good form, returned to the pavilion cheaply, falling prey to Harbhajan.
Amla went down on his knee to sweep but the ball hit the pad and went on to dislodge the stump. He tried desperately to push it away with his bat but he had no chance.
Kallis and AB de Villier tried to rebuild the crumbling innings by playing cautiously, though they played and missed a number of times.
The pair put on 34 runs for the fifth wicket before pace spearhead Zaheer Khan evicted de Villers (13) who was caught in two mind on how to deal with the ball.
de Villiers shouldered arm to an incoming delivery but the ball bounced, hit the bottom of the bat and crashed into the stumps, reducing the hosts to 98 for five.
Kallis and Ashwell prince ensured that there were no further setbacks for the team by holding fort till the lunch break.