South Africa reached 64-0 in its second innings to lead India by 152 runs on day three of the second test. Bad light forced an early end to play.
India was earlier dismissed for 240 at the Kingsmead Stadium by South Africa, which trails 1-0 in the three-match series. South Africa scored 328 in its first innings.
South African captain Graeme Smith reached 28 and A.B. de Villiers 31 by stumps.
Before lunch, South African fast bowlers Makhaya Ntini and Morne Morkel took five wickets between them as India slipped from its overnight score of 103 for 3 wickets.
Morkel's figures were 3-86, and Ntini's 3-41.
Sachin Tendulkar moved to his first 50 of the year but, after starting to accelerate the run rate, he edged a simple catch to wicketkeeper Mark Boucher off Ntini to depart for 63.
In the same over, Ntini exploited Sourav Ganguly's weakness against short-pitched bowling and the former Indian captain popped a simple catch to Herschelle Gibbs and was out for no runs.
V.V.S. Laxman resisted a barrage of short bowling for an undefeated 50.
Morkel got his first test wicket when he induced a flashing drive from Mahendra Singh Dhoni and the Indian wicketkeeper edged a catch to De Villiers for 34.
Morkel added the wickets of Anil Kumble, caught by Boucher off a drive for no runs, and of Zaheer Khan for 2. Khan top-edged a pull shot for a simple catch at short leg for Hashim Amla.
Laxman joined up with Sree Sreesanth to resist the South African attack after lunch before Sreesanth edged Andrew Hall to Boucher for 28.
Laxman then accelerated his scoring rate, and got his half century off 156 balls. Vikram Singh was the last Indian batsman out, caught behind for four off Shaun Pollock.