Having won the first two Tests convincingly, South Africa came to Supersport Park confident of wrapping up the series with a clean sweep, but Pakistan's new-look bowling attack took it right up to them throughout the first day.
Pakistan was working its way on top with South Africa 5-196 when Amla (92) and Dean Elgar (seven) were out in quick succession, but since then de Villiers has gone on to make an unbeaten 98 and with help from 28 from Robin Peterson (28) and Vernon Philander (45) the Proteas are doing well.
At stumps on the first day, South Africa is 6-334 after deciding to go with an extra bowler and give Kyle Abbott his Test debut to replace Jacques Kallis. It has paid off with both Peterson and Philander making handy runs with their elevation in the batting line-up.
It's a young and inexperienced Pakistan bowling attack with the trio of Mohammad Irfan, Rahat Ali and Ehsan Adil having played two Tests between them coming into the game, but they did well on the opening day before the giant Irfan injured his right leg after bowling 16.5 overs.
Ali finished the day with 3-95 and Adil 2-54 to be Pakistan's only wicket-takers.
South African captain Graeme Smith won the toss and chose to bat first, but both openers were out cheaply with Alviro Petersen gone for 10 and Smith for five.
The Proteas were then 2-38 before Faf du Plessis and Amla steadied the ship with a 69-run third wicket partnership that ended when Adil picked up his second wicket with du Plessis caught behind for 29.
Amla and de Villiers then combined for 79 before Amla was caught behind off Ali just eight runs short of his century.
When Elgar was gone for seven, South Africa was in a degree of trouble at 5-196, but Peterson then chipped in with 28 and now de Villiers and Philander have safely guided the home side to 6-334 at stumps.