Opener Rohit Sharma hit his third century of the series to lead India's charge after they lost early wickets against South Africa on day one of the third Test on Saturday.
Sharma, on 117, combined with Ajinkya Rahane, on 83, to put on an unbeaten 185-run stand after the hosts were wobbling at 39-3 following their decision to bat first in Ranchi.
India reached 224 for three when bad light stopped play in the final session. It began to rain as well and no further action was possible.
Sharma and Rahane ensured that India, who have already taken an unassailable 2-0 lead in the three-match series, denied the opposition bowlers any wickets after lunch.
"The duo batted really well. There was a bit of moisture early on. The wicket was doing something," said India's batting coach Vikram Rathour.
"They also bowled in better areas but recovery was phenomenal. Both of them batted really well and post-lunch the wicket eased a bit. We should catch this."
Kagiso Rabada got two early scalps in a fiery morning spell and fellow paceman Anrich Nortje claimed his maiden Test wicket after he trapped India skipper Virat Kohli lbw for 12.
Sharma, who hit twin centuries in his debut game as an opening batsman at the start of the series, then steadied the innings along with Rahane, who completed his 21st Test fifty.
Sharma played it cool to fifty then soon launched an attack with a barrage of sixes, reaching his sixth Test hundred with his fourth hit over the fence amid loud applause from the home crowd.
The duo from Mumbai have recorded India's best fourth-wicket stand against South Africa after surpassing the 178 between Kohli and Rahane in the second match.
In the morning session, India lost Mayank Agarwal, for 10, and Cheteshwar Pujara, for nought, to Rabada's lively spell of pace bowling and slipped to 16 for two.
Rabada nearly got his third when Sharma was judged lbw by the on-field umpire when the opener was on seven.
But Sharma successfully reviewed the decision as replays clearly showed the batsman got an inside edge off the bat before the ball hit the pads.
"Rabada is one of the better bowlers in the world at the moment. Today he showed why he's rated so high," Rathour said in praise of the South African pace spearhead.
"As a batsman, you need to survive those spells, you need to get through those spells and Rohit did very well today again."
Kohli made a review of his own -- a leg-before call -- but tracking technology showed the ball would have grazed the leg stump.
Nortje said getting Kohli's prized scalp was "unbelievable" and praised his entire bowling unit.
After losing nine coin tosses in consecutive Asian Tests, Proteas captain Faf du Plessis brought on his deputy Temba Bavuma to end the poor run.
It was not enough and South Africa lost its 10th flip on the trot in Asian Tests -- the third of the series.
Spinner Shahbaz Nadeem made his international debut for India while wicketkeeper Heinrich Klaasen and left-arm orthodox George Linde earned their maiden Test caps for the Proteas.