India had a shaky start in their second innings loosing Jaffer (4) and Dravid (1) very early. Nel dismissed the tentative Jaffer inducing a nick to Smith stationed at second slip while Dravid became Pollock's 400th Test wicket when he nicked his peach of an outswinger only to give a regulation catch to gloveman Boucher.
Sehwag (33) and Tendulkar (14) held Indian innings for sometime before giving away their wickets to Nel and Pollock respectively.
Earlier Indian opening bowler Shanthakumaran Sreesanth claimed his first Test five-wicket haul to engineer South African collapse. They were bundled out for paltry 84.
Replying to a modest Indian total of 249, South Africa were bowled out shortly before the tea break to give India a first innings lead of 165 on Saturday.
Sreesanth, 23, took five for 40 with a fine display of attacking seam and swing bowling.
Sreesanth, playing in his sixth Test, at one stage had five for 19 after dismissing five of the first seven batsmen.
It was the lowest total made by South Africa in any Test since the country was re-admitted to the International Cricket Council in 1991.
It was a dramatic change of fortune after South Africa had appeared on target to take control of the match on a pitch which offered bounce and some movement to the fast bowlers.
But the Indians used the conditions better as they sent the home side tumbling and gave themselves the chance to become the first Indian team to win a Test match in South Africa.
Whereas the South Africans peppered the Indian batsmen with short-pitched bowling, Sreesanth and new ball partner Zaheer Khan bowled a fuller length and made the batsmen play at more deliveries.
South Africa's first three wickets fell with the total on five.
Captain Graeme Smith was out leg before to Sreesanth for five and Herschelle Gibbs was out without scoring in the next over when he edged a drive off Khan to backward point.
Hashim Amla was also out for nought, edging an out-swinger from Sreesanth to VVS Laxman at second slip.
Jacques Kallis survived a close appeal for leg before by Khan before relieving the pressure slightly by hitting two boundaries in the same over. But Kallis was out soon after lunch for 12 when he edged Sreesanth to provide Laxman with a second catch.
Left-hander Ashwell Prince, who top-scored with 24, staged a brief fightback as he and Andre Nel put on 39 for the eighth wicket before Prince was caught behind off leg-spinner Anil Kumble. Makhaya Ntini was bowled first ball by Kumble and although Dale Steyn survived the hat-trick ball, Nel was out for 21 in the next over when he skied VRV Singh to deep mid-off.
India earlier lost their last five wickets for 93 runs. Sourav Ganguly scored 51 not out while last man Singh slogged effectively to make 29 in a last wicket stand of 44 before Shaun Pollock wrapped up the Indian innings.
Pollock held a sensational catch and took four wickets for 39 runs.
Resuming at 156 for five, India quickly lost Mahendra Singh Dhoni, who drove Ntini uppishly. The veteran Pollock, 33, dived full length to his left from mid-off to hold what was no more than a half chance.
Kumble survived a chance to Gibbs at third slip off Ntini before he had scored but made only six before steering Nel to Kallis at second slip.
Khan and Sreesanth fell to Pollock within three balls as India slumped to 235 for nine.
Singh provided an entertaining boost to the total by stepping away towards square leg and slogging cross-batted at almost every ball, hitting six boundaries in a 19-ball innings before he finally top-edged a hit against Pollock and hit the ball almost straight up in the air to present Pollock with a return catch.
India 249 (Sourav Ganguly 51 n o, Sachin Tendulkar 44, Rahul Dravid 32, VVS Laxman 28; Pollock 4 for 39, Ntini 3 for 57, Kallis 2 for 67) Vs South Africa 84 all out (Ashwell Prince 24, Andre Nel 21; Sreesanth 5 for 40, Kumble 2 for 2, Zaheer 2 for 32)