Fast bowler Anrich Nortje ripped through the West Indies middle order to take 5-36 as South Africa opened up a 179-run lead with six second innings wickets remaining at the close of the second day of the see-saw first test at Centurion Park on Wednesday.
South Africa limped to 49 for four in their second innings having been all out for 342 in their first early on the second morning.
They dismissed West Indies for 212 in reply as seamer Gerald Coetzee also claimed figures of 2-45 on debut, with 24 wickets already lost in six sessions in the match.
Dean Elgar (1), debutant Tony de Zorzi (0), Keegan Petersen (7) and Temba Bavuma (0), with a pair of ducks, are all already dismissed for the home side in their second innings.
Bavuma is the fourth player to get a pair on their Test captaincy debut after Mark Taylor, Rashid Latif and Habibul Bashar.
First innings centurion Aiden Markram (35 not out) and Heinrich Klaasen (0 not out) will resume on the third morning, hoping to build on what is already a sizeable advantage.
Seamer Alzarri Joseph (2-17) has impressed again after he claimed a maiden Test five-wicket haul in South Africa's first innings with 5-81.
"It's not the quickest wicket, it's going a little up and down, but we are just sticking to our plans," Nortje said.
"I need to adjust a little now and then. It's just about finding that rhythm.
"We need some sort of partnership to take the lead to 250-plus. Definitely that's very competitive. The more we can get the better, but I would think 250-plus is a very good score."
West Indies made a strong start to their first innings but lost their final seven wickets for 43 runs as Nortje proved chief destroyer.
Kagiso Rabada (2-44) claimed the first wicket with a beautiful delivery that angled into captain Kraigg Brathwaite (11) and then seamed away off the pitch and hit the top of off-stump.
Tagenarine Chanderpaul (22), son of West Indies great Shivnarine, was caught by Senuran Muthusamy at gully to give Coetzee his first test wicket.
The visitors showed some dogged determination in the face of hostile home bowling and Blackwood reached 37 before an inside edge off Nortje was caught by diving wicketkeeper Klaasen.
They were still sitting relatively comfortably on 169 for three, but when innings top scorer Raymon Reifer (62) was caught by Klaasen off Marco Jansen, it precipitated a collapse.