New Zealand fast bowler Mark Gillespie took five wickets on debut but could not prevent South Africa from taking a 195-run first innings lead on the third day of the second and final Test at Centurion Park Sunday.
South Africa were all out for 383 shortly before lunch.
Gillespie took five for 136 and led a New Zealand fightback as South Africa lost five wickets for 60 runs at the start of the day.
But an aggressive ninth wicket stand of 51 between tailenders Andre Nel and Dale Steyn, who both scored 25, enabled South Africa to regain the momentum they held through most of the first two days.
South Africa, who won the first Test in Johannesburg by 358 runs, started the day on 372 for three in reply to New Zealand's 188.
Gillespie struck early when he had Ashwell Prince caught at gully. But Hashim Amla, resuming on 89, completed his second successive century before he was caught at cover off Iain O'Brien for 103, made off 216 balls.
AB de Villiers made a lively 33 but Gillespie dismissed Mark Boucher, De Villiers and Paul Harris before Nel and Steyn came together. They raced to a 50 partnership off 59 balls, using old-fashioned tailend tactics of blocking some and slogging the others.
Nel hit two sixes, off Chris Martin and Gillespie, and Steyn hit a massive six off Martin.