South Africa were 299 for five, 35 runs behind India's first innings total of 334, at the end of Day 3 of the second and final cricket Test at Kingsmead in Durban on Saturday.
Play was cut short on Saturday because of rain and it will start early on Sunday.
Kallis, playing in his final Test match, ground out an unbeaten 78 after South Africa lost three wickets in quick succession on the third day of the second Test.
South Africa were trailing behind India by 67 runs at tea.
The home side had started Day Three well with skipper Graeme Smith (47) and Alviro Peterson (62) adding 21 runs before the former was excellently caught by Shikhar Dhawan running towards the boundary at cover off the bowling of spinner Ravindra Jadeja.
Hashim Amla had a wretched time in the drawn first test in Johannesburg, out twice leaving deliveries that crashed onto his stumps, and he failed with the bat again.
This time he played a shot but the result was the same, the excellent Mohammed Shami getting the ball to move away slightly and clip the off-stump and dismiss him for three.
That brought Kallis to the crease and the Indians gave the veteran all-rounder a guard of honour as he walked to middle, with Australian umpires Steve David and Rod Tucker joining in.
It was excellent sportsmanship from the tourists, whose respect for one of the greats of the game was obvious.
Petersen appeared to have lost his concentration and was out to the very next delivery, gloving the ball to Murali Vijay at slip off the bowling of Jadeja.
Jadeja, who replaced Ravichandran Ashwin in the Indian line-up for the second test, has found moderate turn and good bounce from the pitch and looked dangerous.
There has also been a hint of reverse-swing for the pace bowlers, aided by the abrasive Kingsmead surface, but de Villiers and Kallis negotiated any movement well.
Live Commentary, South Africa First Innings:
© Copyright © 2013 HT Media Limited. All Rights Reserved.