South Africa built on fast bowler Dale Steyn's superb five-wicket effort to seize the initiative in the second Test against India here on Thursday.
The visitors batted steadily to reach 100-2 in their first innings at tea in reply to India's 76. Hashim Amla was unbeaten on 15 at the break.
South Africa were indebted to Steyn, Makhaya Ntini and Morne Morkel for gaining the upper hand as the talented pace trio required just 20 overs to bundle India out in the morning session itself.
Steyn finished with 5-23 for his eighth haul of five or more wickets in a Test innings. Ntini grabbed three wickets and Morkel two.
India's total was their lowest against South Africa and the second-lowest at home in Tests. It was also their second-shortest innings, after 17 overs against England at Lord's in 1974 when they were shot out for 42.
South Africa did not face any batting problems as skipper Graeme Smith (34) and Neil McKenzie (42) put on 78 for the opening wicket to strengthen their team's chances of gaining a handsome first-innings lead.
Tea was taken immediately after the dismissal of McKenzie, caught by Rahul Dravid at first slip off spinner Harbhajan Singh.
None of the Indian batsmen could cope with the South African pace trio on a lively morning wicket as only Irfan Pathan (21 not out) and wicketkeeper Mahendra Singh Dhoni (14) could reach double figures.
India were in danger of falling to their lowest-ever total of 66 (at Durban in 1996) against South Africa when they were 56-8, but Pathan and Rudra Pratap Singh put on 20 for the ninth wicket.
Extras were the second-highest contributors with 19 in a spineless Indian batting performance on a track having both pace and movement.
Steyn got two big wickets when he dismissed hard-hitting Virender Sehwag and Dravid, India's key batsmen in the drawn opening Test at Chennai last Sunday.
Sehwag, who hammered the fastest recorded triple-century in the previous match, contributed six this time before inside-edging a delivery on to his stumps.
Dravid, who scored a hundred to join the 10,000-run club at Chennai, was also beaten by the movement when he was bowled for three.
India's batting problems began in the fourth over when Ntini had Wasim Jaffer (nine) caught by Smith, who held a low catch to his left at first slip.
Ntini then bagged two wickets in his fourth over as Venkatsai Laxman was bowled shouldering arms and Sourav Ganguly played a delivery on to his stumps to leave India tottering at 30-4.
The South African fast bowlers kept non-stop pressure on the batsmen as Morkel had Dhoni caught behind and then bowled skipper Anil Kumble, who was declared fit for the match after recovering from a groin strain.