Durban - Hashim Amla led the charge after South Africa lost both opening batsmen on the first day of the first Test against New Zealand at Kingsmead on Friday.
South Africa were 94 for two at lunch after deciding to bat in overcast conditions, with the floodlights on for most of the morning.
Trent Boult bowled a superb opening spell of one for eight in eight overs as South Africa struggled to 41 for two.
But Amla made 42 not out off 41 balls, hitting nine fours, as he and JP Duminy (13 not out) added an unbeaten 53 for the third wicket.
Left-armer Boult troubled both South African opening batsmen, Stephen Cook and Dean Elgar before he had Cook caught for 20 with the last ball of his seventh over after just under an hour of play. The opening stand was worth 33 runs.
Boult gained some movement both ways on a slow but well-grassed pitch. Cook got a faint edge to a ball which straightened off the surface after several other deliveries had swung in to the right-hander.
Three overs later Elgar was caught at the second slip by Martin Guptill off Doug Bracewell for 19. Seamer Bracewell replaced leg-spinner Ish Sodhi in the only change from the New Zealand team that won two Test matches against Zimbabwe in Bulawayo recently.
South Africa were captained for the first time by Faf du Plessis, standing in for the injured AB de Villiers.