South Africa’s lead bowler Kagiso Radaba took three wickets in 11 balls to stem an early flow of runs for India, who were 188-6 at lunch on the third day of the second Test at the Wanderers on Wednesday.
Rabada brought an end to a potentially devastating 111-run third wicket partnership between Cheteshwar Pujara and Ajinkya Rahane, to leave the test still delicately poised as India looked to set their hosts an imposing target to chase.
India lead by 161 runs with four wickets in hand on a wicket expected to continue favouring the seamers and where a target of over 200 is going to be difficult to chase down.
Pujara and Rahane picked up where they left off on Tuesday as they took it to the home bowling, adding 66 runs, in the first hour, to the overnight score of 85-2.
They were looking to take the game away from the hosts, as they both reached half centuries, and put their team on course for a winning 2-0 lead in the three-match series, and a first-ever series success in South Africa.
But Rabada checked their progress by having Rahane caught behind for 58 and then Pujara trapped leg before wicket in his next over, out for 53.
Rabada added the wicket of Rishabh Pant the over after. The India wicketkeeper was caught behind by Kyle Verreyne without scoring and after facing just three balls.
South Africa got another fortunate breakthrough just before lunch when Ravichandran Ashwin played at a loose ball going down leg from Lungi Ngidi and was caught by wicketkeeper Verreyne for 16.
Hanuma Vihari on six not out and Shardul Thakur on four will resume after lunch.