GALLERY: Jacques Kallis in pictures
SCORECARD: SA v India
The Proteas, chasing 58 to win the Test and series, are 19/0 at tea.
Alviro Petersen (14*) and Graeme Smith (5*) are at the crease.
Earlier, needing three wickets to wrap up India's second innings, the Proteas obliged after lunch and bundled them out for 223 at Kingsmead on Monday, leaving South Africa 58 runs to win in the second Test and series.
After the first game in Johannesburg ended a draw, the Proteas would win the two-Test series 1-0.
Robin Peterson was the leading wicket-taker for the home side, returning figures of 4/74.
With three strikes in the second innings, Dale Steyn reached 350 Test wickets, ending the innings on 3/47. He took nine wickets in the match for 147 runs.
The only Indian batsman to offer any resistance was Ajinkya Rahane who bludgeoned his way to 96. He was eventually clean-bowled by Vernon Philander just short of a maiden century playing in only his third Test.
Starting the final day with India on 68 for two in their second innings - 98 runs behind the hosts - a draw seemed likely with unpredictable weather in the area. However, the players were greeted with blue skies and perfect batting conditions in the morning.
South Africa bagged five scalps in the morning, after India resumed with Cheteshwar Pujara and Virat Kohli unbeaten on 32 and 11, but neither managed to add to their score.
Steyn struck with the first ball of the day to remove Kohli with a short ball which appeared to take the edge into the gloves of AB de Villiers. Replays, however, suggested the bouncer hit the batsman's shoulder.
Steyn struck again to dismiss Pujara with a perfect rising delivery which clipped the top of off-stump.
A brief period of recovery was cut short for India as Rohit Sharma missed a straight delivery from Philander. Sharma was trapped plumb in front for 25, leaving India on 104/5.
Indian captain MS Dhoni was next to depart for 15, flicking Peterson through midwicket but also straight into the hands of Alviro Petersen.
The capitulation of India's middle order was complete when Ravindra Jadeja (8) was out after facing a mere five balls. He tried to hit Peterson over the top, but skied his shot and Morné Morkel took the catch at mid-off.