AB de Villiers crafted an unbeaten half-century to put South Africa in a promising position on a third day of the second Test which was cut short by bad light after India captain Virat Kohli lit up Centurion with a sublime hundred.
A magnificent 21st Test century from Kohli (153) got the tourists up to 307 all out on Monday, Morne Morkel taking 4-60 as the Proteas earned a first-innings advantage of 28.
An intriguing contest appeared to be swinging India's favour when Jasprit Bumrah reduced South Africa to 3-2, but De Villiers (50 not out) and Dean Elgar (36no) came to the rescue with an unbroken third-wicket stand of 87 on a deteriorating pitch.
South Africa were 90-2 when the players were taken off 10 overs into the final session under dark skies, leading by 118 as they strive to wrap up the series with one match to play.
Kohli carried on where he left off on day two after India resumed on 183-5, the skipper adding the 15 runs he needed to raise his bat yet again, reaching three figures by working debutant Lungi Ngidi into the leg side for two.
Hardik Pandya had shown restraint, but gifted South Africa his wicket when he ambled through for a single but was run out by Vernon Philander, the all-rounder failing to ground his bat or a foot despite being beyond the crease.
Kohli found another able partner in Ravichandran Ashwin (38), who dispatched Kagiso Rabada for three consecutive boundaries as Kohli continued to look untroubled.
Ashwin struck seven boundaries and put on a much-needed 71 with Kohli for the seventh wicket before edging Philander, steaming in with the new ball, to Faf du Plessis at second slip.
Morkel removed Mohammed Shami and Ishant Sharma cheaply, but Kohli was able to bring up 150 by pulling the paceman to the midwicket boundary before the innings was ended when he holed out to the same bowler.
Bumrah (2-30) set the alarm bells ringing for South Africa when he trapped Aiden Markram and Hashim Amla leg before, but De Villiers showed positive intent and Elgar grafted for his runs on a tricky surface, indifferent bounce making life difficult for the batsmen.
De Villiers found the ropes six times and reached his 50 before play ended prematurely due to the failing light, a rain delay having also brought the players off after tea.
|Tiger Woods´ caddie tried to pay heckler to leave Firestone|
|Sordet leads Nordea Masters, Olesen overcomes flight woes|
|Mourinho visits Istanbul Basaksehir before Burnley game|
|Iniesta hails ´worldwide sports legend´ Alonso|
|Onus on Ozil to rise above criticism, says ex-Arsenal star Wright|
|Lahm to head Euro 2024 if Germany wins bid|
|Tennis Australia ´extremely disappointed´ with Davis Cup revamp|
|Snedeker shoots 59 at Wyndham, after bogeying his first hole!|
|Lukaku hints at Belgium retirement after Euro 2020|
|Pellegrini rules out West Ham approach for Toure|
|Association of Spanish Footballers fumes at LaLiga´s US agreement|
|Seibold and Bennett hit out at media speculation|
|Cipriani ´truly sorry´ after pleading guilty to common assault|
|Man City´s Roberts makes Girona loan move|
|Davis Cup revamp passed by two-thirds majority vote|
|Pochettino ready to tackle Man City after Wembley NFL|
|Emery ends Arsenal goalkeeper debate with Cech assurance|
|Shastri: India happy to face Stokes in Nottingham|
|Etzebeth returns for Springboks, Pumas include Figallo|
|Two Serie A matches postponed after Genoa bridge collapse|
|Barrett tight-lipped over Manly future due to ´legal reasons´|
|N´Zonzi is better than Malcom - Monchi takes aim at Barca star|
|Sainz to replace Alonso at McLaren|
|Bayliss encourages Stokes to make public apology|
|Oates hat-trick boosts Broncos´ play-off ambitions|
|Emery needs four transfer windows to impact Arsenal – Wright|
|Spain´s LaLiga plans to play regular-season game in U.S.|
|´Dream come true´ for Robertson to earn Bledisloe Cup start|
|LaLiga match set for USA following groundbreaking Relevent deal|
|FIFA rankings: France number one, Croatia and England soar, Germany and Argentina plummet|
|Hansen hails ´big leader´ Whitelock ahead of 100th cap|
|Cipriani pleads guilty to common assault and resisting arrest|
|PSG snap up Kehrer from Schalke|
|Maitland-Niles facing two months out with broken leg|
|Walker backs City squad strength to overcome De Bruyne blow|
|Thomas & Froome skip Vuelta, named in Tour of Britain squad|
|Thurston rules out retirement U-turn|
|Pumas look to build on Jaguares progress in Rugby Championship|
|Super Cup glory will make Atletico strong - Simeone|
|Rugby Championship 2018: True status of Erasmus´ Springboks rebuild to be discovered|
|LaLiga 2018-19: Coutinho ready to be Barca´s next Brazilian superstar|
|Serie A 2018-19: Can Napoli, Roma, Inter or AC Milan overhaul Juventus?|
|Braves survive skirmish, loss of Acuna to top Marlins|
|Robertson handed surprise start, Hodge gets nod for Bledisloe opener|
|MLS Review: Wayne´s World as Rooney inspires DC United, LAFC win|
|Djokovic and Dimitrov survive but Zverev loses in Cincinnati|
|Rain halts Halep as Muguruza´s defence ends and Wozniacki retires|
|Ozil´s racism claims nonsense, says Kroos|
|Malcom lost for words after Camp Nou bow alongside Messi|
|Injured Fowler withdraws from play-off opening Northern Trust|
|Marcelo happy with Madrid squad amid transfer talk|
|Foles isn´t worried about Brady´s handshake snub|
|Eli Manning on Jalen Ramsey´s comments: ´Who?´|
|Cerezo: Atletico´s objective is to reach Champions League final|
|Judge´s recovery taking longer than expected|
|Ronaldo in the past as Casemiro backs Lopetegui after Madrid loss|
|With our ´cojones´ Atletico can beat anyone – Costa revels in Super Cup glory|
|Super Cup loss doesn´t change Real Madrid transfer policy, says Lopetegui|
|Griezmann: Super Cup triumph justifies staying at Atletico|
|Valverde defends Suarez performances|
|Simeone´s eclipses Aragones as Atletico´s top coach with seventh title|
|Rockets GM: LeBron James is ´the greatest ever´|
|Salihamidzic, Kovac not standing in way of Rudy exit|
|Jaguars DB Ramsey calls Bills QB Allen ´trash´|
|Real Madrid 2 Atletico Madrid 4 (after extra time): Saul stunner seals Super Cup glory|
|Ex-India Test captain Wadekar dies aged 77|
|Gundogan ready to step up in absence of injured De Bruyne|
|Djokovic overcomes illness to see off Mannarino|
|Diego Costa nets fastest UEFA Super Cup goal ever|
|Everton feared missing out on Mina after World Cup strike|