With Australia's bowlers toiling fruitlessly on a flat wicket during the heat of the day, the South Africa captain nudged his team steadily forward but opener Alviro Petersen and Hashim Amla suffered brain-fades to lose their wickets.
Having raised his 26th test century, the barrel-chested skipper was unbeaten on 111, with Jacques Rudolph on 25.
Resuming on 117-0, Petersen added 21 runs with Smith after tea but their partnership was broken by a poorly judged attempt at a single and a sprightly 37-year-old in Mike Hussey.
After driving spinner Nathan Lyon to mid-on, Petersen swerved to avoid Smith down the pitch and was a few centimetres short of safety when Hussey swooped and threw down the stumps with a direct hit.
Having been frustrated by the pair for more than a session, the Australians celebrated wildly as Petersen trudged off, having eased off in his dash to the crease, thinking he was safely home.
Australia were convinced they had their second wicket four overs later when Smith was given out caught behind when on 78, but the decision was over-ruled after video review, leaving paceman James Pattinson biting his lip in frustration.
The reprieve was Smith's second in his innings after he survived a stumping chance on 46 when wicketkeeper Matthew Wade fumbled a Lyon delivery behind the stumps with the Proteas skipper well out of his crease.
Wade later made amends when Amla charged out of his crease against part-time leg-spinner David Warner, only to be beaten for flight and have the bails whipped off.
Smith marched resolutely forward and sliced Lyon to the fence to complete a morale-boosting and no-nonsense knock of 12 boundaries, in contrast to the fireworks of Australia captain Michael Clarke and David Warner on day one.
Amla's dismissal for 11 brought in Rudolph, taking Jacques Kallis's fourth spot in the order to relieve the burly all-rounder, who suffered a hamstring strain when bowling on the opening day. Rudolph survived the last over from Lyon, and he and Smith strode off with South Africa still trailing by 333 runs.
The tourists, flayed by Australia's batsmen on the opening day, earlier rattled through the last five wickets for 68 runs to dismiss the hosts shortly before lunch.
Paceman Morne Morkel starred with three wickets in the morning session to finish with 5-146, claiming the key wicket of Australia captain Michael Clarke for 230.
However, Pattinson and Lyon frustrated the tourists with a feisty last-wicket stand of 46 before the former was out for a quick-fire 42, nicking an edge to Smith, who took his fourth catch at first slip to bring the innings to a close.
Clarke and Wade resumed on Friday with the score at 482-5, but were soon on the back foot with Morkel steaming in and bowling a fuller length.
Clarke struck his 40th boundary but added only six runs to his overnight total before being bowled by Morkel, the Australia captain then leaving the ground to a standing ovation.
Peter Siddle flicked a boundary off his pads to raise Australia's total past 500, but the lanky Morkel had Wade caught behind by AB de Villiers for six with a fuller delivery.
Rory Kleinveldt grabbed his first wicket when he had paceman Siddle nick to Smith in the slips, but had a nervous wait as the decision was referred to a lengthy no-ball review.
Morkel celebrated his fifth wicket when Ben Hilfenhaus attempted a hook that ended with a thick edge to Kleinveldt at deep backward square leg.