Rohit Sharma struck his maiden double Test century Sunday to put India on top of the third match against South Africa after the hosts declared on 497 for nine.
Sharma made 212 and was involved in a 267-run fourth wicket partnership with Ajinkya Rahane to pulverise South Africa's bowling in Ranchi.
The tourists were in trouble at nine for two, with Indian fast bowlers sending the opposition openers back to the pavilion in Ranchi.
Zubayr Hamza, on nought, and skipper Faf du Plessis, on one, were at the crease when bad light stopped play for the second successive day.
Pace spearhead Mohammed Shami struck with the second ball of the innings to get the left-handed Dean Elgar caught behind for nought.
Umesh Yadav joined forces to send Quinton de Kock packing for four after the batsman tried to fend off a bouncer that caught his glove and was safely taken by wicketkeeper Wriddhiman Saha.
The day belonged to Sharma who reached 200 with a six off paceman Lungi Ngidi in the third over after lunch, to a standing ovation from the raucous home crowd.
The in-form opener hit another six off Ngidi before falling to Rabada and returned to the pavilion with handshakes from the South African side.
Sharma -- who hit twin centuries in his debut as Test opener at the start of the series -- pulled India out of early trouble with his marathon stand with Rahane, who made 115.
The senior batsman, playing his 30th Test, surpassed his previous best of 177 on his debut against the West Indies in 2013.
Sharma, who has three double centuries in his already illustrious one-day career, smashed the ball all around the park as he hit 28 fours and six sixes in his 255-ball stay.
Rahane, who started Sunday on 83, became Linde's first Test victim and the only Indian wicket to fall in the morning session.
Linde got good turn with his left-arm spin in an extended afternoon session as he claimed Ravindra Jadeja for 51.
He returned figures of 4-133 while paceman Kagiso Rabada took three wickets.
Yadav, coming in at number nine, played a useful cameo of 31, hitting five sixes during his 10-ball blitz.
Shami, on 10, and debutant Shahbaz Nadeem, on one, were batting when skipper Virat Kohli called them back at the stroke of tea.
Earlier Rabada struck twice to reduce India to 39 for three after the hosts elected to bat first on Saturday, which also saw a large part of the final session lost to bad weather.
India are aiming for a whitewash after taking an unassailable 2-0 lead in the three-match series.