Leading from the front, India captain Virat Kohli made a defiant 85 runs (not out) as other batsmen fell like a pack of cards to leave the top-ranked Test team at 183/5 on the second day, trailing South Africa by 152 runs in the second Test in Centurion on Sunday. (HIGHLIGHTS)
Kohli's 16th Test half-century showed his determination to keep India alive in a series where they already trail 1-0 and are fighting to justify their No. 1 ranking. (Full Scorecard)
Only opener Murali Vijay provided some lasting support for Kohli on Day 2 at SuperSport Park as South Africa's four-man pace attack worked its way through the Indian top and middle-order.
Allrounder Hardik Pandya was 11 not out alongside Kohli at stumps, with India precariously placed in their reply to South Africa's first innings of 335 all out.
Kohli strode in with India under pressure at 28-2 after losing two wickets in two balls. He took the lead in a 79-run partnership with Murali Vijay (46), making 51 of those 79 runs.
Vijay was undone by South African spinner Keshav Maharaj, opening the way for quick bowlers Kagiso Rabada and Lungi Ngidi to remove Rohit Sharma (10) and Parthiv Patel (19).
Earlier, South Africa skipper Faf du Plessis played a similar role to Kohli with a precious half-century to take his team past 300. Du Plessis' 63 dragged his team to 335 after useful lower-order partnerships of 31 with Maharaj (18) and 42 with Rabada (11).
India were hoping for a quicker end to South Africa's first innings after three swift wickets at the end of the first day had the home team in trouble on 269/6 at stumps. But India missed chances, notably dropping Rabada twice off successive balls when South Africa would have slipped to 289/7. Kohli missed one of those catches at slip.
India did ultimately remove South Africa's last seven batsmen for just 89 runs, though, with offspinner Ravichandran Ashwin taking 4/113 and seamer Ishant Sharma justifying his selection ahead of Bhuvneshwar Kumar by taking 3/46, including the prize wicket of du Plessis.
But India's reply stuttered early when KL Rahul was out caught and bowled by Morne Morkel for 10, and Cheteshwar Pujara was run out first ball he faced by a direct hit at the non-striker's end from debutant Ngidi.
Ngidi's first day of action in Test cricket improved when he angled one across Patel late in the afternoon and had the wicketkeeper-batsman caught behind, leaving India 164/5.
(With AP inputs)