South Africa needed just 20 overs of searing pace to blast India out for 76 before lunch on the opening day of the second Test here on Thursday.
Dale Steyn led a sharp pace attack to finish with 5-23 for his eighth haul of five or more wickets in a Test innings. He was superbly backed by Makhaya Ntini (3-18) and Morne Morkel (2-20).
South Africa were one for no loss in reply at lunch, with skipper Graeme Smith and Neil McKenzie at the crease.
None of the Indian batsmen could read the skilful South African pace trio on a lively morning wicket as only Irfan Pathan (21 not out) and wicket-keeper Mahendra Singh Dhoni (14) could reach the 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 eighth wicket.
But India still crashed to their lowest total at home against South Africa, the previous being 113 at Mumbai in 2000. It was also India's second-lowest total at home in Tests after 75 against the West Indies in Delhi in 1987.
Extras were the second-highest contributors with 19 in a spineless Indian batting performance on a track having both pace and movement in the morning session.
Steyn got two big wickets when he dismissed hard-hitting Virender Sehwag and Rahul 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 century to join the 10,000-run club at Chennai, was also beaten by the movement when he was bowled for three.
India's batting woes began in the fourth over when Ntini had opener 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.
There was no respite from pace for the Indian 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.