South Africa 322 (de Kock 141*, Holder 4-75) beat West Indies 97 (Holder 20, Ngidi 5-19, Nortje 4-35) & 162 (Chase 62, Rabada 5-34) by an innings and 63 runs
Kagiso Rabada claimed his first five-wicket haul in 33 innings, since March 2018, as South Africa wrapped up the St Lucia Test before lunch on the third day to take an unassailable lead in the two-match series. West Indies lost six for 65 in an extended first session on Saturday to stumble to a sixth innings defeat in 253 matches at home. They have plenty to address in terms of shot selection and temperament before the second Test, which starts next Friday.
While conditions remained challenging for batting throughout the match, with swing through the air, the surface did not hold any demons. Roston Chase proved as much with a top score of 62 but had barely any support. West Indies' highest partnership was a 46-run stand between Chase and Jermaine Blackwood, who only added three runs to his overnight score and was worked over by Lungi Ngidi on the third morning.
Ngidi thought he had an early breakthrough in the fourth over of the day when umpire Gregory Brathwaite gave Blackwood out caught down the leg side but Blackwood reviewed. Replays showed the ball had hit the thigh pad as Blackwood missed the flick. Two balls later, Blackwood was hit on the front pad and Ngidi appealed for lbw but the ball was clearly going over the top of the stumps. And two balls after that, Blackwood was given out again after Ngidi beat him with a full delivery on middle stump and the batter reviewed again. Ball-tracking showed the delivery was too high and Blackwood survived again.
South Africa's frustration did not last much longer. Blackwood faced just eight more balls and then drove Rabada uppishly to short extra cover, where Rassie van der Dussen took a low catch. West Indies' score was on 97 at that point, the same as their first-innings total.
Anrich Nortje was brought on after that wicket and immediately bared his teeth. He beat Chase with a delivery that squared him up from outside off. Nortje continued to test Chase outside off but Wiaan Mulder allowed some reprieve at the other end. He overpitched and Chase took back-to-back boundaries to bring up his half-century off 122 balls. Chase's achievement stood in stark contrast to his team-mates. No other West Indian batter made an individual score of more than 20 in the match.
Jason Holder would have been disappointed that he was unable to acquit himself better, after a solid looking 20 in the first innings. He scored just 4 in the second before he was dismissed off the first ball he faced from Keshav Maharaj. Holder offered no shot as he anticipated turn from the left-arm spinner but none came and he lost his off stump.
Maharaj had only bowled only four in the first innings but played a bigger role in the second. He also got rid of Chase, who under-edged an attempted cut onto his stumps, and all but ended West Indies' resistance.
Rahkeem Cornwall wafted at a Rabada delivery to give van der Dussen a simple catch at mid-off and extend the morning session. Rabada cranked up the aggression after that and hit Joshua Da Silva flush on the left elbow, where he had no forearm guard for protection. He received treatment on the field and continued batting, albeit nervously as he edged Radaba wide of the slips. He then survived a review for lbw in the next over after replays showed the ball was going over the top of the stumps but had his off stump taken out as he shouldered arms to a ball that bent back into him to give Rabada his five-for.
Nortje claimed the last wicket when Jayden Seales flashed at a wide ball and edged to Mulder at third slip to end South Africa's streak of nine consecutive defeats on the road, since Nottingham 2017. It was also Dean Elgar's first win as Test captain, a pleasing result for the new leader. He joined a small list of skippers who led their side to victory despite scoring no runs, taking no wickets and holding no catches in the Test.

Firdose Moonda is ESPNcricinfo's South Africa correspondent