Predicted showers on Monday loom as the biggest obstacle in South Africa's search for a victory over Australia in Port Elizabeth that would square the three-Test series.
But given the way Australia slumped on Saturday to be all out for 246 in the space of 57 overs, the visitors will need a markedly improved effort with the bat for this match to reach a fifth day.
The hosts gained a 177-run first-innings lead, despite dropping four catches including Australia's top two run-scorers David Warner and Steve Smith.
The Proteas lacked the ruthless edge that has kept them at the top of the ICC's Test rankings since August 2012, but Warner (70), Smith (49), Brad Haddin (nine) and Nathan Lyon (15) couldn't take full advantage of their let-offs.
Smith was given the most unforgivable reprieve of the four, substitute fielder Robin Peterson grassing a regular catch when he was on 24.
The 24-year-old was also the most unlucky to lose his wicket, with third umpire Aleem Dar overturning Richard Illingworth's not-out verdict shortly after lunch despite there being no overwhelming evidence of an edge on Hotspot and Snicko.
Australia enjoyed a minor victory when Ryan Harris heaved a short ball from Vernon Philander over the mid-wicket fence to pass the follow-on mark.
The most recent time South Africa enforced the follow-on against Australia was in 1970 at Durban.
Harris and Peter Siddle put on a last-wicket partnership of 37 that showed how few demons were in the placid pitch.
The collapse was all the more costly given South Africa are set to be a bowler down for the rest of the match.
Wayne Parnell, playing his first Test in four years, limped off the field midway through his ninth over and was sent for scans on a suspected groin strain.
The visitors resumed on day three at 4-112, but lost four wickets in a frenetic first session that ended when Mitchell Johnson missed a straight ball from JP Duminy to be out for 27.
Johnson, who inflicted so much pain in the first Test at Centurion, was hit on the hand and helmet by consecutive nasty Morne Morkel bouncers in the 49th over.