India lost their last six wickets for no runs in 11 balls as wickets tumbled on the first day of the second Test against South Africa at Newlands on Wednesday.
After bowling out South Africa for 55, India were dismissed for 153, a lead of 98 runs.
India seemed set for a substantial advantage when they reached 153 for four, with the experienced Virat Kohli and KL Rahul at the crease.
But Lungi Ngidi had Rahul caught behind and took two more wickets in the same over.
Kagiso Rabada had Kohli caught at second slip for 46 in the next over, Mohammed Siraj was run out and Prasidh Kumar caught at second slip.
Earlier Siraj took a career-best six for 15 as South Africa crashed to their lowest total in almost 92 years.
Having won the first Test in Centurion last week, the hosts had ensured they would continue their proud record of never losing a Test series on home soil to India.
Brief scores:
South Africa 55 in 23.2 overs (J. Bumrah 2-25, Mohammed Siraj 6-15, M. Kumar 2-0).
India 153 in 34.5 overs (R. Sharma 39, S. Gill 36, V. Kohli 46; K. Rabada 3-38, L. Ngidi 3-30, N. Burger 3-42).
India lead by 98 runs on the first innings.
AFP