Virat Kohli scored a career-best 254 not out and moved past 7000 Test runs to help India take command on day two of the second match of the series against South Africa.
Largely thanks to its captain's seventh double-century, India declared its first innings on 5-601 and reduced the Proteas to 3-36 after 15 overs by stumps.
South Africa, already 1-0 behind in the series, trail by 565 runs.
Kohli moved ahead of compatriots Virender Sehwag and Sachin Tendulkar, who each scored six, and into joint-fourth on the list for most Test double-centuries - level with Wally Hammond (England) and Mahela Jayawardene (Sri Lanka).
Kohli's score surpassed his previous best - 243 against Sri Lanka at Delhi in 2017 - and included 33 fours as well as two sixes.
Kohli put on 225 runs for the fifth wicket with Ravindra Jadeja (91) off only 237 balls on a painful day's play for the the South African attack.
Left-arm spinner Keshav Maharaj (1-196) left the field because of an injured shoulder and went to the local hospital for scans.
"The way they batted, we were able to get 600 on the board," said India vice-captain Ajinkya Rahane.
"Both Kohli and Jadeja made it look so easy."
Jadeja scored his 12th Test half-century and hit eight fours as well as two sixes. India accelerated toward a declaration after tea and despite a triple-century being on the horizon, Kohli called a halt to the innings on his partner's dismissal.
In reply, South Africa was stunned by Umesh Yadav, who dismissed openers Aiden Markram (0) and Dean Elgar (6) within four overs.
Mohammed Shami (1-3) then removed Temba Bavuma (8) as India ran through the Proteas' top order.
Theunis de Bruyn (20 not out) and nightwatchman Anrich Nortje (2 not out) were unbeaten at end of play.
Australian Associated Press