An unbeaten century from veteran Dean Elgar and fifty on debut from David Bedingham allowed South Africa to take an 11-run lead over India when bad light ended play on the second day of the first test at Centurion.
The 36-year-old Elgar is retiring from international cricket after the two-test series but played one of the best innings of his long career as he scored an emotive 140 not out to help the hosts to 256-5 in reply to India’s first innings total of 245.
He will resume on Thursday with Marco Jansen, who has three, with South Africa seeking to build a substantive lead.
Elgar, who took over the captaincy after Temba Bavuma pulled his hamstring fielding on Tuesday, played some unusually flamboyant front-foot strokes in a chanceless innings against a fearsome attack on a track set up for the seamers.
He scored a 14th test century but his first at Centurion, which is his home ground.
"It just clicked for me today. I didn't have a lot to lose. I wanted to play with a bit of freedom," Elgar said at stumps.
He brought up his ton in 140 balls and featured in two important partnerships -- first 93 runs for the second wicket with Tony de Zorzi, which set a good foundation, and then 131 with Bedingham for the fourth wicket.
The 29-year-old Bedingham looked assured and confident on debut as he scored 56 before being bowled by Mohammed Siraj, who finished the day with figures of 2-63.
Jasprit Bumrah also took two wickets, squaring up De Zorzi (28) and forcing a thick edge to third slip and then bowling Keegan Petersen for two.
Siraj had taken the first wicket of the innings when Aiden Markram went cheaply for five in the fourth over of South Africa’s knock.
Earlier, KL Rahul completed his century before India were dismissed for 245 in their first innings, moving on from 208-8 overnight with play commencing 25 minutes late because of light drizzle.
Rahul, who was 70 not out at the start, went to an eighth test ton in spectacular fashion, hammering a six into the crowd as the tourists added 37 runs to their first-day score before being bowled out.
He had provided stout resistance on the opening day on Tuesday as South Africa threatened to dismiss India cheaply but were let down by spilt catches and inconsistent bowling.
Rahul came out again on Wednesday with the same aggressive intent and put away the bad balls to reach his century before being the last man dismissed as Nandre Burger bowled him for 101 off 137 balls.
Burger finished with 3-50 on his debut with Kagiso Rabada the pick of the home bowlers with 5-59.