The West Indies' batting faltered for the second time in as many days on Friday, keeping South Africa in a commanding position at stumps on the second day of the first cricket test.
After being dismissed for 97 on the first day, the West Indies slumped to 51-4 as it began its second innings 225 runs behind South Africa.
Quinton de Kock's unbeaten 141 guided South Africa to 322 in its first innings and the tourist's bowlers again quickly ran through the West Indies' top order.
A stubborn 31-run partnership for the fifth wicket between Roston Chase and Jermaine Blackwood halted the slide and lifted the West Indies to 82-4 at stumps when the deficit was 143. Chase was 21 and Blackwood 10 at stumps and their partnership occupied the last 13 overs of the day.
Kagiso Rabada and Anrich Nortje shared the four wickets that fell in the last session.
Rabada trapped Kraigg Brathwaite lbw for 7 in the fifth over, then removed Kieran Powell for 14 in a similar manner in the 11th over.
Nortje dismissed Shai Hope (12) and Kyle Mayers (12) in consecutive overs. Mayers fell to a superb catch at third slip by Wiaan Mulder.
Earlier, de Kock breezed to his sixth century and his highest test score to give South Africa a formidable first innings lead.
Released of the pressure of captaincy, de Kock batted with fluency to achieve his first century against the West Indies before South Africa's first innings ended at tea.
“I just wanted to get out there and bat time,” de Kock said. "The runs I thought were going to come at some point.
“Just to be able to stay out there and get the team into a strong position obviously was quite satisfying.”
De Kock was playing his first test since giving up the captaincy and taking a break from cricket for mental health reasons.
He entered the fray with South Africa 119-4 late on day one and with the ball still moving about. De Kock anchored the Proteas from there, clubbing 12 fours and seven sixes and single-handedly taking the attack to the West Indian bowlers at times.
“The ball was still moving around so I just wanted to put myself in strong positions and put the bad balls away,” de Kock said. “That was the mindset this morning.”
De Kock hit 68 of the 79 runs he put on with Anrich Nortje for the ninth wicket.
De Kock had luck, too, with two let-offs. He was dropped on 83 by Mayers, who couldn't cling on to a running, diving effort at fine leg. Mayers did hold on for a catch in the same position when de Kock was on 117, but bowler Jason Holder was called for a no-ball.
Holder took 4-75 and 19-year-old fast bowler Jayden Seales 3-75 on his test debut, but West Indies was well behind. Seales was also the unlucky bowler when Mayers dropped de Kock.
De Kock shared a 43-run partnership with Rassie van der Dussen (46) and put on 53 with Wiaan Mulder (25) but really took control in the second half of the South African innings.
Tailender Nortje (7) gave him support, although he had to do little more than survive at the other end while de Kock unleashed the boundaries.
“Obviously we've batted ourselves into a good position,” de Kock said. "The bowlers came out aggressive and hit the mark.
“The wicket is a bit up and down now by the look of it but there's still a bit of swing around and we have to make sure we stay on it. I'm sure we'll be alright.”