Rohit Sharma struck his maiden double Test century on Sunday as India declared on 497 for nine on day two of the third Test against South Africa.
The in-form opener reached the milestone with a six off paceman Lungi Ngidi in the third over after lunch to a standing ovation from the raucous home crowd in Ranchi.
He hit another six off Ngidi before falling to paceman Kagiso Rabada for 212 and returned to the pavilion with handshakes from the South African side.
The left-handed Ravindra Jadeja then took control to hit his 13th Test half-century before falling to debutant spinner George Linde for 51.
Linde returned figures of 4-133 with his left-arm spin.
Number nine Umesh Yadav played a useful cameo of 31, hitting five sixes during his 10-ball blitz.
Mohammed Shami, on 10, and debutant Shahbaz Nadeem, on one, were batting when skipper Virat Kohli called them back at the stroke of tea.
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 267-run fourth-wicket stand with Ajinkya 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.
He successfully reviewed an lbw decision on seven and survived a dropped catch on 28 on day one.
Rahane, who started Sunday on 83, became Linde's first Test victim and the only Indian wicket to fall in the morning session.
Rabada struck twice to reduce India to 39 for three after the hosts elected to bat first on Saturday.
Bad light and rain forced an early end to the opening day with only 58 overs after play was called off.
India are aiming for a whitewash after taking an unassailable 2-0 lead in the three-match series.