Jasprit Bumrah took 5-42 as India bowled South Africa out for 210 and then drove home their advantage with the bat as they ended day two of the decisive third and final Test on 57 for two in their second innings at Newlands on Wednesday.
India’s lead is 70, already a sizeable one on a difficult, seaming wicket that is offering plenty of assistance to the bowlers and has seen 22 wickets fall on the opening two days of the contest.
Captain Virat Kohli is not out 14 in an unbeaten partnership of 33 with Cheteshwar Pujara (9) and they will attempt to take the game away from the home team on the third morning as they chase a first ever series win in South Africa.
Both openers have been dismissed as Mayank Agarwal (7) was caught by Dean Elgar off Kagiso Rabada and KL Rahul (10) was grabbed by Aiden Markram at slip from the bowling of Marco Jansen.
Bumrah gave a masterclass of seam bowling in the South African innings as he got the ball to move both ways and at times leap off the surface.
Keegan Petersen top-scored with 72 for South Africa but the fragility of the home team’s batting was exposed, with no other batsman scoring more than Temba Bavuma’s 28.
Even so, South Africa seemed well-placed until Mohammed Shami (2-39) made a double strike shortly before tea.
With batting conditions seemingly easier in bright sunshine than on the overcast first day, South Africa reached 159 for four, with Petersen and Bavuma both batting relatively comfortably.
But the consistently accurate Shami produced a ball which climbed on Bavuma, forcing an edge which was taken by Kohli at second slip.
Two balls later Kyle Verreynne prodded at a good-length delivery from Shami and was caught behind, leaving South Africa with no more recognised batsmen.
Bumrah followed by bowling Jansen with the last ball before tea and then had Petersen caught at first slip in the second over after the interval.
Petersen had to face the third ball of the morning after Markram padded up and was bowled by an in-swinger from Bumrah without a run added to the overnight 17 for one.
When nightwatchman Keshav Maharaj was bowled by Umesh Yadav (2-64) for 25, South Africa were precariously placed at 45 for three.
The slightly-built Petersen batted with skill and application in partnerships of 67 with Rassie van der Dussen (21) and 47 with Bavuma before Shami struck.
It was his second half-century following the 62 he made in the first innings in the previous Test at the Wanderers.
Bumrah, though, was India’s most effective bowler.
He dismissed South African captain Elgar on the first evening and posed problems for all the batsmen on a pitch which still offered good bounce and some seam movement.
Rabada had a hostile opening spell when India started their second innings.
Agarwal was given out caught behind but won a reprieve when a review showed the ball had brushed a pad and not the inside edge of his bat. But he made only seven before edging Rabada to Elgar at first slip.
Jansen struck in the next over when Rahul was caught at second slip.
Pujara and Kohli prevented any further breakthroughs before the close of play.
The series is level at 1-1 after India won the first Test in Pretoria by 113 runs, before South Africa bounced back to claim the second in Johannesburg by seven wickets.