The tourists slipped from an overnight 255 for five to 280 all out, with Vernon Philander taking three wickets this morning, including two in as many balls, to leave India reeling.
In response, the Proteas went to tea on 118 for one, with captain Smith progressing to an unbeaten 63 alongside Amla (30no).
Both batsmen were far from their irrepressible best early on, however, as Ishant Sharma and Zaheer Khan, playing his first Test in just over a year, were finding movement off the seam in overcast conditions.
It was South Africa's seamers, and Philander and Morne Morkel in particular, that took centre stage this morning as the tourists lost their last five wickets for the addition of just 16 runs.
Virat Kohli's century yesterday left honours even, but India found runs hard to come by after Ajinkya Rahane thumped Dale Steyn through the covers for four in the third over of the day.
Indeed, Rahane and captain Mahendra Singh Dhoni added just nine to the overnight total in as many overs before Morkel made the breakthrough.
Dhoni poked at a full-length delivery from the tall paceman, succeeding in only thick edging to Proteas wicketkeeper AB de Villiers.
Rahane fell just four balls later after feathering behind off Philander (four for 61), who then had an uncertain Zaheer trapped in front off the very next delivery.
While Ishant survived the hat-trick ball, he was castled by a beautiful delivery in Philander's next over before paceman Morkel completed India's miserable morning soon after by bowling Mohammed Shami.
Smith and Petersen guided the Proteas through to lunch on 22 without loss, with the South Africa captain coming through a tough spell against his nemesis Zaheer, who has dismissed the left-handed batsman on six occasions in Tests, unscathed.
Petersen crunched fours off Ishant and Zaheer after the interval and looked in decent touch before being trapped in front by one that jagged back from Ishant.
Amla was given a baptism of fire after being forced to duck from Ishant's well-directed bouncer before getting his first boundary with an inside edge down to fine leg for four.
Smith earned a lifeline in the next over when he was dropped on 19 after edging Zaheer to first slip, where Ravichandran Ashwin spilled a low chance.
The opener continued to live a charmed life against his old foe following a streaky edge through the slip cordon for four.
Both batsmen were finding the going tough although the luck was on their side as they both found the boundary rope with unconvincing strokes, leaving India frustrated.
Smith moved to his 50 with a sublime hit over mid-on off Ashwin for his ninth four and kept the score ticking over to ensure South Africa remained on top.