India captain Virat Kohli blazed a magnificent century, but South Africa hold the upper hand as they reached 90 for two in their second innings on a difficult wicket after rain and then bad light curtailed day three of the second Test on Monday.
The home side lead by 118 runs having bowled India out for 307 after lunch, despite a classy 153 from Kohli, who played almost a lone hand in scoring half his side's runs.
AB de Villiers (50 not out) has taken the attack to the Indian bowlers after South Africa had sunk to three for two in their second innings on a wicket that is more Pune than Pretoria, with variable bounce and taking massive turn for the spinners.
De Villiers will resume on day four with opener Dean Elgar (36 not out), who has battled for rhythm but hung around in an unbeaten third wicket partnership of 87.
South Africa had been rocked earlier by a double-strike from Indian seamer Jasprit Bumrah (2-30), who trapped both Aiden Markram (1) and Hashim Amla (1) leg before wicket with deliveries that skidded through after keeping low.
De Villiers counter-attacks, once again
There would have been plenty of panic in the South African dressing room at that point, but De Villiers started playing attacking shots from the moment he reached the wicket to transfer the pressure back onto the tourists.
Kohli shines with fine ton
Kohli had spoken before the match about showing more "intent" against South Africa's seam attack and he duly delivered, compiling a brilliant 153 not out from 217 balls.
He now has 21 test tons to go with 15 half-centuries, a conversion rate when passing 50 that is only bettered in the game by Australian great Don Bradman, who made 29 hundreds and 13 fifties.
India had resumed on their overnight score of 183 for five, but lost Hardik Pandya (15) to a farcical run out as the all-rounder ambled into his crease and failed to put his bat down, only to be undone by a direct hit from Vernon Philander.
Kohli and Ravichandran Ashwin (38) shared a quick-fire seventh wicket stand of 71 in 14.2 overs, before the latter fell to Philander (1-46).
Mohammed Shami (1) edged a Morne Morkel (4-60) delivery to slip, while the latter also accounted for Ishant Sharma (3) when he was caught at short-leg.
Kohli was the last batsman out as he tried to attack the bowling, caught at deep mid-on to be become Morkel's fourth victim of the innings.
South Africa won the opening Test of the three-match series by 72 runs in Cape Town.