India are 98 runs behind South Africa in the second Test in Durban with one more day of play remaining.
The tourists finished the fourth day on 68-2 after the Proteas had posted a first-innings score of 500.
South Africa had the retiring Jacques Kallis to thank for their big score, as the 38-year-old made 115 and moved into third place on the all-time list of Test run scorers.
Kallis was well supported by Dale Steyn in the morning session of a rain-affected fourth day, with the nightwatchman posting a total of 44 before being dismissed.
After lunch Robin Peterson (62) and Faf du Plessis (43) combined for a century partnership to help the hosts to a 166-run first-innings lead before they were bowled out.
India lost two wickets in their second innings after tea. First Murali Vijay was caught in the slips and then Shikhar Dhawan fell to the bowling of Peterson.