A rejuvenated Morne Morkel and a fiery Kagiso Rabada ripped open Australia on day 2 after Dean Elgar and Rabada added a half-century partnership to take the hosts past 300.
The tall, lanky seamer completed his 300th Test wicket, picked up four in the day as it seemed like all one-way traffic on day two.
Just when it seemed Australia were conceding the Test on a platter, Nathan Lyon and Tim Paine stitched together a 66 run stand with the No.10 contributing 47 of those runs.
The stand saved Australia the blushes after their top-order batsmen came a cropper against the Proteas seamer. The visitors ended the day at 245/9 with Paine once again battling with the tail.
#5 Rabada - Elgar frustrate Aussies
If Australia had hopes of bowling out South Africa early on day two, they were thwarted by a resilient Kagiso Rabada, who faced a barrage of short balls from the Aussie quicks, and centurion Dean Elgar.
The No.10 batsman unfurled a flurry of superbly timed drives amidst some top-edged hooks to stake claims for a place higher in the order.
Runs came thick and fast as the duo put on a half-century partnership much to the annoyance of Steven Smith who would have ideally wanted David Warner and Cameron Bancroft padding up five overs into day two.
It took Nathan Lyon just one ball to break the stand and he ended the innings of the fifth ball of the same over.
#4 Warner vs Rabada and a battle to savour
Even as the teams were tussling hard out there, a mini-battle between Warner and Rabada attracted greater attention.
The Australian opener was struck on the hand by Rabada first up and he responded by driving him twice and then clipping him to mid-wicket to complete a hat-trick of boundaries.
Next over, Rabada greeted Warner with a bumper that the southpaw hooked nonchalantly over fine-leg for six.
Another boundary followed as the Australian seemed to be in one of his murderous moods.
But this was Rabada bowling. He might be handicapped in terms of sledging and probably even celebrating, but he isn't one to shy away from a battle.
Steaming in, the South African speedster landed one on the perfect length, moved it in a touch and took it away at the last moment to send his off-stump cartwheeling.
#3 Steven Smith's off day at the office
It's not often that Smith has a poor Test, forget a poor series. But so far in the ongoing South African tour the Australian skipper has been as benign as the milk snake.
If it was Keshav Maharaj and Dean Elgar (yeah he has a few troubled against left-arm spin) in the first Test that caused Smith troubles, his downfall at Cape Town was brought about by himself.
Rabada had troubled him right through the first few overs at the crease and the slip cordon even had a few words for the Aussie skipper.
Perhaps it was a lapse in concentration or the fact that it was Morne Morkel that forced Smith to chase a widish short ball.
The slight seam movement away caught the edge and Elgar snapped up Smith at gully.
#2 Morne Morkel completes 300 Test wickets
In what is perhaps his penultimate Test match, veteran Proteas seamer, Morne Morkel completed his 300th Test wicket, forcing an outside edge off Shaun Marsh from around the wicket just as he was settling into his Ashes mode.
Morkel is the fifth South African after Allan Donald, Shaun Pollock, Makhaya Ntini and Dale Steyn to go past the landmark.
The seamer was in fine rhythm on his comeback to the Test side after being left out at Port Elizabeth, getting rid of Usman Khawaja early on with a well-directed bumper.
He then had the big fish, Steven Smith, edging to gully off a short delivery that lifted off the surface.
Morkel completed his 300th with the scalp of Marsh as he put South Africa ahead on a teeter-totter day of Test cricket.
He added a fourth late in the day to give himself a chance to complete a five-wicket haul on day three.
#1 Nathan Lyon plays a blinder from No.10
With Australia staring down the barrel after Morkel and Rabada ran havoc through their batting line-up, the visitors found an unlikely hero in Nathan Lyon with the bat.
The No.10, batting with the panache of a top order player, hurt South African bowler's ego with a scything counter-attack.
Lyon played some fabulous, text-book shots to get Australia out of the rut in the company of Tim Paine.
He raced his way to 47 in 38 balls with eight boundaries as Australia saved themselves from being bowled out conceding a huge lead. He was the ninth man out, gifting Morkel his fourth wicket in the innings.
Looking for fast live cricket scores? Download CricRocket and get fast score updates, top-notch commentary in-depth match stats & much more! 🚀☄️