Countering the loss of three wickets in the first session, the two batsmen brought up their half-centuries in the post-lunch session and the Proteas now trail by only 67 runs, after India scored 334 runs in their first innings.
Kallis was unbeaten on 61 runs, off 180 balls with nine fours. JP Duminy (13) was giving him company at the other end after de Villiers departed following a 117-ball 74, studded with nine boundaries.
Zaheer Khan (0-46) and Ishant Sharma (0-65) toiled hard, but failed to provide any breakthroughs. Rohit Sharma (0-11) was again deployed in this session as skipper Mahendra Singh Dhoni seemed to be missing a second spinner on this dry pitch.
After the lunch break, Kallis and de Villiers looked set for a big partnership, starting from the 68-run mark.
Also Read
South Africa started at 181/3 as the runs came in quickly. Both batsmen stroked boundaries at will, as the pace bowlers searched for some reverse swing. Zaheer was punished in particular, but de Villiers also aggressive intent against Jadeja, not letting the spinners settle down.
In their eagerness to score quickly, South Africa almost lost a wicket when the two batsmen were involved in a huge mix-up in the 69th over.