West Indies 149 (Blackwood 49, Mulder 3-1) trail South Africa 298 (de Kock 96, Mayers 3-28, Roach 3-45) by 149 runs
South Africa seized the advantage in the second Test against West Indies with a first-innings lead of 149. After being dismissed for just under 300 in the morning session, their attack plucked West Indies out for 149 on a wicket-filled day. Fifteen fell in total, although conditions were not as helpful for swing as they were on the first day. There was some seam movement and decent bounce on offer but as was the case in the first Test, the West Indies batters' shot selection let them down against a disciplined visiting attack.
Jermaine Blackwood top-scored with 49 but was some distance off South Africa's best batter. Quinton de Kock fell four short of a second successive century and remains the main difference between the two sides. de Kock could even have the opportunity to add to his series tally when South Africa bat again.
Kraigg Brathwaite was dismissed on review off the first ball of the innings when he followed a Kagiso Rabada length delivery down the leg side. Although the on-field umpire was not convinced, UltraEdge showed the ball had brushed the West Indies captain's glove on its way through to de Kock.
Lungi Ngidi shared the new ball and did not take much longer to strike. He had Kieran Powell lbw off the first ball of his second over, when he beat Powell's inside edge and hit him in front of middle stump. Powell reviewed unsuccessfully to leave West Indies 8 for 2. Ngidi left the field after that over with an upset stomach but returned later in the session only to leave again later on.
Anrich Nortje took over from Ngidi and had Roston Chase caught by Kyle Verreynne at short leg. West Indies almost lost their fourth wicket soon after when Sarel Erwee, on the field as a substitute for de Kock who left with cramps with Verreynne taking over the keeping duties, stationed at short leg received a Kyle Mayers' pull in the rib cage. Erwee could not hold on to the chance but Mayers was dismissed soon after when he chased a wider, full delivery from Keshav Maharaj and edged to Aiden Markram at slip.
Shai Hope and Blackwood put on 43 for the fifth wicket, and Hope posted his highest Test score in 15 innings but was bitterly disappointed when he inside-edged Ngidi onto his stumps.
Jason Holder was caught at gully off Rabada and Joshua Da Silva had an unhappy 23rd birthday when he nicked off Wiaan Mulder to ensure all the South African bowlers had at least one wicket to their names. Kemar Roach, who had done his bit with the ball earlier in the day, went the same way and two balls later Jayden Seales was caught at leg slip to leave Mulder with figures of 3 for 1. In the next over, Blackwood top-edged Maharaj to end West Indies innings, five minutes before the close of play.
Earlier, Roach and Mayers finished with three wickets apiece as West Indies forced a South African collapse of 5 for 59 to enjoy their best period of play in the match so far.
West Indies took the second new ball immediately as play began on day two, half an hour late after a morning shower, and shared it between Seales and Holder. But it was only when Roach was introduced that West Indies got their first wicket. He angled a delivery in towards Mulder, who moved forward to defend and outside-edged to Da Silva.
Maharaj hung tough as de Kock took the score past 250 and rotated the strike well but his time ran out when he tried to drive Holder as the ball moved away from him and he was caught behind, sparking a mini-collapse. Mayers got de Kock to slash at a wide delivery and edge it to Hope in the gully. Two overs later, Mayers struck again when Nortje tried to flick him over midwicket but chipped it to Seales, who was perfectly positioned for the chance. Just before lunch, Roach claimed his third when Ngidi lobbed him to midwicket but may feel the line-up undid much of his and the rest of the attack's good work.

Firdose Moonda is ESPNcricinfo's South Africa correspondent