South Africa's pacemen routed Australia's batsmen with five late wickets to leave the hosts reeling at 111-5 at the close of day three on Saturday and give the tourists faint hope of pulling off an unlikely victory in the second test.
Dismissed for 388 at tea to trail Australia's massive first innings total by 162 runs, Rory Kleinveldt took three wickets in a withering pace assault, with fellow quicks Dale Steyn and Morne Morkel taking a wicket each as the Adelaide Oval pitch bared its teeth late in the day.
First innings hero Michael Clarke and Mike Hussey survived a nervous few overs as shadows crept across the ground, with the hosts stuttering to a still-precarious 273-run lead.
"What we did tonight in the last session was exactly what we needed to still have a sniff in the game," all-rounder Faf du Plessis told reporters, after scoring an impressive 78 on debut to help the Proteas avoid the follow-on.
"Because if they just went 4 1/2 runs an over with no wickets, we would have been under massive pressure. At the moment, we're still in there."
Clarke, who scored a second consecutive double-century in the first innings, was on nine, with Hussey on five after a pulsating day in hot conditions.
David Warner and Ed Cowan pushed the lead to 239, before Kleinveldt ended their 77-run opening stand amid a superb burst of swing bowling.
Kleinveldt, a late selection following a back injury to Vernon Philander, removed Warner for 41, the pugnacious opener miscuing a swipe off his pads to produce a simple catch to Du Plessis at extra cover.
The two-test paceman Kleinveldt then had Rob Quiney feathering an edge to wicketkeeper AB de Villiers in the same over, the Australian number three slumping to his second duck of the test following a nine in his sole innings in Brisbane.
Kleinveldt made it a third in quick succession by bowling Cowan through the gate, before Dale Steyn had the out-of-form Ricky Ponting out for 16 when the former Australia captain played onto his stumps.
Nightwatchman Peter Siddle strode out to the crease to meet Clarke but headed back quickly, managing just one run, after nicking to De Villiers off Morkel.
The powerhouse display opened the door slightly for South Africa, but they will be mindful of history at Adelaide Oval, where the greatest successful run chase was by England in 1901/02 when they mowed down 315 for victory.
After conceding 180 runs in a wayward, wicketless performance during Australia's first innings, legspinner Imran Tahir's nightmare test continued on Saturday.
Tahir celebrated what he thought was a breakthrough wicket when opener Cowan edged to extra cover in his third over, but umpire Billy Bowden summoned a video review which confirmed the spinner had over-stepped his mark.
The no-ball granted Cowan a reprieve and Tahir went on to bleed 38 runs from his seven-over spell.
The tourists were earlier buoyed by a fighting half-century from Jacques Kallis, battling through the pain of his hamstring injury in a 93-run stand with Du Plessis.
Du Plessis also showed great composure with a 78 on debut and put the Australian attack to the sword with a breathless display of clean hitting in the final overs.
Australia captain Clarke ended Kallis's innings on 58 as the burly all-rounder was caught behind courtesy of a miscued sweep.
Kallis is expected to bat again in the second innings but would be unlikely to play the third and final test in Perth, a major blow for South Africa, the team doctor said after the close.
Spinner Nathan Lyon took the first wicket of the day when he had Jacques Rudolph out for 29, slapping a catch straight to extra cover.
"We're pretty happy with where we are sitting at the moment with a a 273-run lead," he told reporters after finishing with 2-91.
"It's going to be hard work in the morning, but hopefully Pup (Michael Clarke) and Huss (Mike Hussey) will be able to fight the reverse swing and spin and hopefully get a good lead again and see where we get to.
"The wicket is going to deteriorate a bit more as the game goes on. Reverse swing and spin are going to play a massive role in it and hopefully I'll be able to contribute to a Test match victory."
Siddle removed century-maker Graeme Smith for 111 and AB de Villiers in a fiery spell of 2-7 in the morning, before Ben Hilfenhaus took the new ball and mopped up the tail.
Australia's bowlers may have to share a greater workload with an injury cloud over James Pattinson. The paceman left the field before lunch to have treatment for a side strain.