Amla made 149 as South Africa reached 427 for five at the close of play in reply to New Zealand's first innings total of 593 for eight declared.
South Africa, who lead the three-match series 1-0, lost only three wickets Sunday to make a draw the only likely result with one day left to play on a batsman-friendly pitch which has yielded 1020 runs for the loss of only 13 wickets in four days.
Amla, 23, was playing in his fourth Test. A tall right-hander and a Muslim with special dispensation not to wear the logo of the beer company that sponsors the South African team, he played a chanceless innings.
He reached his century shortly before lunch when he drove left-arm spinner Daniel Vettori through the covers for his 12th boundary. He had batted for 306 minutes and faced 242 balls.
Amla, playing in place of the dropped Herschelle Gibbs, batted on through most of the afternoon before Daniel Vettori won a leg before wicket decision when Amla stretched forward to a ball which straightened.
His innings lasted 408 minutes and 317 balls. He hit 20 boundaries, driving fluently on the off-side and playing some wristy strokes to leg.
After playing in three Tests during the 2004/05 season, with a highest score of 25, Amla was recalled to the South African team after topping the run-scorers in the domestic first-class competition.
Jacques Kallis became the first South African and 17th player in history to score 8000 Test runs before he was dismissed for 71.
Kallis reached the 8000 mark when he was on 60. He was looking set for a big score before he played a cramped pull against medium-pacer Jacob Oram and spooned a catch to Chris Martin at mid-on.
Amla and Kallis put on 144 for the third wicket, batting for 192 minutes and using up 50.2 overs. Amla and Ashwell Prince (70 not out) added 92 for the fourth wicket.
New Zealand were given renewed hope immediately before tea when off-spinner Jeetan Patel had AB de Villiers caught at short leg for 13 but Prince and Mark Boucher were seldom troubled by the bowlers as they took South Africa past the follow-on target of 394.
Prince and Boucher added an unbeaten 66 for the sixth wicket before bad light ended play with nine overs due to be bowled.
The South African team management announced that left-arm spinner Nicky Boje would be out of action for between seven and ten days after having five stitches in his right hand, although he would be able to bat if necessary in the current Test.
He split the webbing between his thumb and forefinger while fielding Saturday. He is likely to miss the third and final Test starting in Johannesburg Friday.