Rohit Sharma smashed his third century of the series and combined with Ajinkya Rahane to lift India to 224 for three before bad light forced an early close to the opening day of the third and final Test against South Africa on Saturday.
The unbeaten Mumbai duo added 185 runs for the fourth wicket to rescue the hosts who looked in dire straits at 39 for three in the morning session after opting to bat in Ranchi.
Rohit's typically fluent 117 not out included four sixes and 14 fours while Rahane hit one six and 11 fours in his unbeaten 83 as they batted through the second session without getting separated.
South Africa lost their 10th toss in a row in India, but dominated the first session with Kagiso Rabada making the most of the morning conditions, generating enough swing to trouble the batsmen.
One of those deliveries drew Mayank Agarwal out to edge to slip where Dean Elgar took a low catch to dismiss the in-form opener.
Rabada trapped Cheteshwar Pujara lbw for a duck after coaxing du Plessis to challenge the original not-out decision which was overturned.
Rabada was celebrating his third success of the morning when Rohit was adjudged lbw but the opener immediately reviewed the decision which was reversed after replays confirmed an inside edge.
Anrich Nortje, playing his second Test, struck a body blow when he trapped Kohli leg before for 12, but Rohit and Rahane returned after the lunch break to rebuild the innings with a brisk accumulation of runs.
Rohit, playing his first series as a Test opener, was particularly aggressive against the spinners and the elegant right-hander brought up his century with his third six off spinner Dane Piedt.
India, who are seeking a series whitewash to cement their place at the top of the World Test Championship table, gave spinner Shahbaz Nadeem his maiden Test cap.
Wicketkeeper Heinrich Klaasen and left-arm spinner George Linde also made their Test debuts for South Africa in the match.