During an extended session, which saw 25 minutes lost to a combination of bad light and rain, the elegant Amla surged to 59 off 80 balls with nine fours and a six, before he top-edged a delivery from seamer Shanthakumaran Sreesanth and was caught as deep midwicket.
Amla was scratchy at the start of his innings but after the rain delay he set off like a train and he brought up his 19th test fifty off 69 balls in some style as he pulled a short ball from Sreesanth over deep midwicket for six.
Jacques Kallis (22 not out) and Amla shared in a rollicking third-wicket stand of 72 off just 15 overs with Amla doing most of the scoring before his loose shot to Sreesanth.
Kallis and AB de Villiers (14 not out) then added 19 runs for the fourth wicket to steer their team to tea.
India had started brightly after lunch when paceman Ishant Sharma had Alviro Petersen (21) caught behind by keeper Mahendra Singh Dhoni when Petersen drove at a delivery that just held its line to send a thin outside edge through to the keeper.
The continued overcast skies and green-tinged wicket saw the pace bowlers extract both swing and seam movement throughout the session so the hosts would have been pleased to have scored 104 runs off 28 overs.
Sreesanth was expensive as he reached the break with figures of one for 50 off 12 overs while Sharma had captured one for 18 off eight overs.
Earlier, South Africa reached 21 for one before a rain delay resulted in an early lunch.
Only 45 minutes of play were possible during the first session with Alviro Petersen, on 13, and Hashim Amla, on one, the not out batsmen when lunch was called.
Graeme Smith (6) was the man dismissed, when he was trapped leg-before by an in-swinging delivery from left-arm seamer Zaheer Khan.
It was a superb piece of bowling from Zaher who had sent down an away-swinger with the ball before the dismissal to create doubt in Smith’s mind as to what the bowler was going to do next.
India won the toss and elected to field under an overcast sky and on a wicket which had a greenish tinge to it and Zaheer exploited the bowler-friendly conditions superbly to reach lunch with figures of one for seven off five overs.
Teams
South Africa:
Graeme Smith (captain), Alviro Petersen, Hashim Amla, Jacques Kallis, AB de Villiers, Ashwell Prince, Mark Boucher (wk), Lonwabo Tsotsobe, Dale Steyn, Paul Harris, Morne Morkel
India:
Gautam Gambhir, Virender Sehwag, Rahul Dravid, Sachin Tendulkar, Vangipurappu Laxman, Cheteshwar Pujara, Mahendra Singh Dhoni (captain, wk), Harbhajan Singh, Zaheer Khan, Ishant Sharma, Shanthakumaran Sreesanth