The Proteas are going to have to to dig deep on day five of the second Test at Newlands if they are to avoid defeat by England.
They finished the day’s play on 126-2 after England set them a big total of 438 to chase down, the visitors piling on the runs during the morning session on Monday.
Dom Sibley and Ben Stokes were quick out of the blocks, scoring rapidly off the Proteas bowlers and trying to add enough runs as possible to their overnight score.
Faf du Plessis waited a bit before he took the new ball but by that time Stokes was already in the groove and finding the boundary with relative ease.
He raced to a 34-ball half-century before Sibley brought up his maiden Test century.
Maharaj eventually dismissed Stokes for 72 before Ollie Pope and Jos Butler fell in quick succession. Joe Root called for the declaration with England’s score on 391-8, setting South Africa the massive target, which will require a record-breaking chase.
The Proteas got off to a very good start as Pieter Malan and Dean Elgar fought to a 50-run opening partnership.
Joe Denly made the all-important breakthrough by removing Elgar for 32, despite the opener opting for a review after being given out by umpire Paul Reiffel. Ultra-Edge then showed the smallest of spikes on the outside edge of the bat.
Malan, though, continued to grind it out with Zubayr Hamza, reaching his maiden half-century on debut.
England spinner Dom Bess tried his best to outsmart the pair as he bowled a great deal of overs from the Kelvin Grove end. Hamza, however, was quite strong off the back foot against Bess as he kept the scoreboard ticking over with a few good cut shots.
Ben Stokes, at the other end, was hoping to do the same as he came around the wicket to Malan, but the 30-year-old was happy to leave and duck under anything short and a bit wide.
Malan and Hamza absorbed a final push from the English pace attack, bringing up a very valuable 50-run partnership for the third wicket.
But James Anderson struck a vital blow late in the day when he nicked off Hamza, caught behind by Butler for 18.
Malan (63) and night-watchman Maharaj (2) will resume on Tuesday as the Proteas trail England by 311 runs with eight wickets in hand.
South Africa: Pieter Malan, Dean Elgar, Zubayr Hamza, Faf du Plessis (c), Rassie van der Dussen, Quinton de Kock (wk), Dwaine Pretorius, Vernon Philander, Keshav Maharaj, Kagiso Rabada, Anrich Nortje.
England: Dominic Sibley, Zak Crawley, Joe Denly, Joe Root (c), Ben Stokes, Ollie Pope, Jos Buttler (wk), Sam Curran, Dominic Bess, Stuart Broad, James Anderson.