India struck early as South Africa started a challenging chase for victory on the fourth day of the first Test at SuperSport Park in Centurion on Wednesday.
Set to make 305 on a pitch of variable bounce, South Africa were 22 for one at tea.
First innings hero Mohammed Shami bowled Aiden Markram with his third ball in the second over of the innings.
Shami, who took five for 44 in the first innings, again bowled an immaculate length, challenging the batsmen with almost every delivery. Markram tried to withdraw his bat from a good length ball but it crashed into his stumps off the bottom of his bat.
In contrast to the morning's play, when India eked out 63 runs for the loss of three wickets in 26 overs, the match moved ahead rapidly during an extended afternoon session.
Starting the afternoon with an overall lead of 209 India made it obvious they felt they could afford to take a more attacking approach as they added 95 runs off 18.3 overs while losing their remaining seven wickets.
Despite captain Virat Kohli falling to the first ball after lunch, edging a drive against a delivery slanted across him from tall left-arm fast bowler Marco Jansen, the Indian batsmen went for their shots while wickets fell at regular intervals.
Ajinkya Rahane hit Jansen for 4, 6, 4 off successive deliveries before being caught in the deep off the same bowler in his next over.
Risabh Pant played a typically aggressive innings and top-scored with 34 off 34 balls.
Debutant Jansen took four for 55 and Kagiso Rabada claimed four for 42.
Markram's dismissal continued a dismal sequence of opening partnerships for South Africa in their last three Tests of 0, 1, 4, 2 and 1.
The sequence has coincided with the career of new number three batsman Keegan Petersen, who has yet to come out to bat with the ball more than nine deliveries old.