South African seamer Kagiso Rabada grabbed a five-wicket haul before India's K L Rahul dug in as bad light and a thunderstorm brought play to a premature close with the touring side on 208/8 on the opening day of the first Test at Centurion on Tuesday.
Rahul was unbeaten on 70 when poor visibility and showers halted proceedings around 80 minutes before the scheduled close, with India holding a tiring home attack at bay.
Earlier, Rabada’s pace proved too hot to handle as he returned figures of 5/44 off 17 overs and debutant Nandre Burger took two wickets with his first 13 balls in Test cricket.
India, 91/3 at lunch, were pegged back as they lost three wickets for 30 runs early in the second session when Rabada showed his class.
He bowled Shreyas Iyer for 31, had Virat Kohli caught behind for 38 as he feathered a stunning delivery and Ravichandran Ashwin (8) snagged at second slip by leaping substitute fielder Wiaan Mulder.
Rahul, however, proved a road block for the home side, who were hoping to dismiss India for under 200 on a track tailor-made for their all-seam attack.
Rahul shared a 43-run partnership for the seventh wicket before Rabada returned to have Shardul Thakur caught by Dean Elgar for 24 and claim his 14th five-wicket haul in Tests.
But Rahul continued to torment the attack as he assumed the responsibility with his tail-end partners, his 70 runs coming quickly off 105 balls and taking India past 200.
South Africa put India into bat and Rabada made the initial breakthrough after a wet outfield delayed the start by 30 minutes when India captain Rohit Sharma’s injudicious hook presented Burger with a catch at long leg.
It was followed by more of dream start for Burger, one of two new caps for South Africa, as he had Yashasvi Jaiswal and Shubman Gill caught behind to leave India teetering on 24/3 but Kohli and Iyer led a fight back with a 68-run partnership. Both were dropped when they had only four runs with Marco Jansen spilling Iyer and Tony de Zorzi putting down Kohli.
South Africa captain Temba Bavuma pulled up with a hamstring strain as he chased a boundary-bound shot from Kohli before lunch, necessitating his departure from the arena for a scan.
"It revealed a left hamstring strain and he will undergo daily medical evaluations to determine his participation in the match," the team said in a statement.
Bavuma had only recently returned from a similar injury.