Sachin Tendulkar, who escaped a straightforward catching chance as India tried to dig their way out of trouble, was unbeaten on 46 as India replied to South Africa's first innings total of 328 on Wednesday.
It could have been worse for the tourists if South African captain Graeme Smith had caught Tendulkar when the total was 69 for three with the batsman on 21.
With India holding a 1-0 lead in the three-match series, Tendulkar and VVS Laxman looked determined to ensure their team would earn at least a draw as they batted cautiously to add an unbeaten 42 for the fourth wicket after South Africa appeared to be gaining the initiative.
Although play had not yet been called off, the prospects for further play Wednesday looked gloomy with heavy clouds hovering above the ground.
Tendulkar's let-off came when India's master batsman edged Andrew Hall to first slip but Smith could not hold a waist-high offering to his left.
By contrast, AB de Villiers held two good catches at second slip as India made a poor start to their innings after South Africa, led by century-maker Ashwell Prince, had added a valuable 71 runs before losing their last two wickets at the start of the day.
De Villiers held his first catch, leaping high and to his right, when Virender Sehwag was out first ball, slashing at Andre Nel. Then he had to go low to hold an edged drive by Wasim Jaffer off Makhaya Ntini.
In between Indian captain Rahul Dravid was leg before to Nel when he was trapped on his crease by a ball which slanted in.
Nel bowled impressively to take two for 26 on another hot, steamy day at Kingsmead.
Prince, who was 98 not out overnight, top-scored for South Africa with 121 as the hosts kept the Indians in the field for an hour and a half earlier in the day, advancing their total from an 257 for eight. Shanthakumaran Sreesanth was India's most successful bowler with four for 109.
The left-handed Prince reached his fifth Test century in the third over of the morning when he drove Sreesanth through the covers for four.
Prince found capable support from new cap Morne Morkel, a right-arm bowler and left-handed batsman, as the pair added 39 for the ninth wicket.
It took the second new ball to break the stand when Prince, immediately after hitting a scorching cover drive off Sreesanth, drove at a wide ball and edged a high catch to Laxman at second slip. Prince batted for 316 minutes, faced 212 balls and hit 16 fours.
Morkel and last man Makhaya Ntini added another 32 before Anil Kumble wrapped up the innings when he trapped Ntini leg before for 16 with a straight ball that hurried through. Kumble finished with three for 62.
The tall Morkel, who looked comfortable at the crease and played some fluent off-side strokes, was unbeaten on 31, made off 52 balls with three fours.