Opening batsman Mayank Agarwal completed a double century on Day 2 as India put South African bowlers to the sword in the first Test.
Agarwal made 215 out of India's 502 for seven declared in Visakhapatnam.
South Africa then lost cheap wickets before the second day ended, reaching 39 for three at the close, with Ravichandran Ashwin leading a spin rout of the top order.
Ashwin bowled Aiden Markram for five and Theunis de Bruyn caught behind for four. Nightwatchman Dane Piedt was bowled middle stump by Ravindra without scoring.
Opener Dean Elgar, on 27, and Temba Bavuma, on two, were at the crease, with their side needing another 264 to avoid a follow-on.
The 28-year-old Agarwal put on a record 317-run opening stand with opening partner Rohit Sharma to set the tone for India's dominance.
He smashed six sixes and 23 fours in a 371-ball knock, using the reverse sweep to good effect as he made his mark in just his fifth Test.
Agarwal eventually fell to part-time spinner Elgar before leaving to handshakes from South African players.
Sharma fell for 176, stumped off Keshav Maharaj before lunch. Sharma, who resumed the day on 115, smashed the ball to all parts of the ground.
India then suffered two quick blows. Cheteshwar Pujara went for six and skipper Virat Kohli for 20.
Paceman Vernon Philander bowled Pujara on the first delivery of the second session. Debutant spinner Senuran Muthusamy had Kohli caught and bowled as his maiden Test wicket.
Jadeja, who made 30 not out, and wicketkeeper-batsman Wriddhiman Saha, who hit 21, gave useful support in building up the huge total.
Maharaj took three wickets from 55 overs of left-arm spin.
The pitch had already started turning as India sent in Ashwin and Jadeja to make quickfire strikes on the South African batsmen.