Rohit Sharma smashed a maiden Test double century as he and centurion Ajinkya Rahane helped India reach 497 for nine before declaring on day two of the third and final Test against South Africa on Sunday.
The hosts then reduced South Africa to nine for two in their first-innings reply before bad light stopped play, with India chasing a series whitewash to consolidate their position at top of the World Test Championship.
South Africa will have to produce an exceptional batting performance to get back into the contest when skipper Faf du Plessis and Zubayr Hamza return to the crease in Ranchi on Monday.
Resuming the day on 224-3, both Rohit and Rahane continued their largely risk-free accumulation.
India were tottering at 39 for three on Saturday when the Mumbai duo combined and by the time Rahane fell for 115 in the morning session, their fourth-wicket stand had produced 267 runs to turn their first innings around in Ranchi.
Rohit reverse-swept Dane Piedt for a boundary, while Rahane stepped out to hit the spinner over his head for a four as they asserted themselves.
Rahane duly brought up his 11th Test hundred before becoming debutant George Linde's maiden Test victim, edging the spinner and departing after a fluent knock which included 17 boundaries and a six.
Rohit, the only batsman to have scored three ODI double-hundreds, appeared slightly jittery as he approached the 200-mark and nearly dragged a Kagiso Rabada delivery onto his stumps just before lunch.
The elegant right-hander, however, shook off his nerves after the break and brought up his 200 just as he had reached his hundred -- with a six, off Lungi Ngidi.
Rohit celebrated the milestone with his sixth six but fell trying to repeat the shot against Rabada. Rohit's sparkling 212 also included 28 boundaries.
Ravindra Jadeja (51) helped himself to his 13th half-century before tailender Umesh Yadav (31) smacked five sixes, all off Linde's bowling, in a 10-ball blitz before falling to the tormented left-arm spinner who returned figures of 4-133.
South Africa were jolted immediately in their reply when Mohammed Shami dismissed Dean Elgar for a duck with his second ball and, in the next over, Yadav bounced out Quinton de Kock for four.