Debutant Jayden Seales was impressive, but South Africa had taken a lead by stumps on day one of the first Test against West Indies at the Daren Sammy Cricket Ground in St. Lucia on Thursday.
The tourists closed on 128-4, a lead of 31, with fast bowler Seales accounting for three of those wickets.
The 19-year-old Trinidadian removed both debutants Keegan Petersen and Kyle Verreynne, on either side of having topscorer Aiden Markram caught behind for 60.
Petersen was caught at second slip for 19 and Verreyne flashed at a short of a length delivery and was caught behind for six.
West Indies most experienced bowler Kemar Roach made the initial breakthrough by dismissing skipper Dean Elgar without scoring, edging to third slip.
Rassie van der Dussen is not out on 34, with Quinton deKock for company on four. Seales has taken 3-34 so far, and Roach 1-27.
Earlier, West Indies had a horrible batting display, being bowled out for a paltry 97. The Caribbean slipped from 24-0 to 56-5 and was eventually dismissed under 100.
Fast bowling pair Lungi Ngidi (5-19) and Anrich Nortje (4-35) did the damage, as the Proteas dominated the early exchanges. Jason Holder made 20, and openers Shai Hope and Kraigg Brathwaite 15 each.
Meanwhile, West Indies batsman Nkrumah Bonner was diagnosed with a concussion and will play no further part in the first Test.
This was confirmed by Cricket West Indies on Thursday afternoon. Bonner will be replaced by left-handed batsman Kieran Powell, who was named in West Indies 13-man squad for this game.
The right-handed Bonner was struck on the helmet the first ball he faced from Nortje. The incident required a mandatory concussion test and a change of helmet.
The Jamaican was subsequently cleared to resume batting, but was eventually dismissed by Kagiso Rabada for 10 off 32 balls.