South Africa were 272 for three at lunch on Sunday, with Amla on 103 not out, in reply to New Zealand's first innings total of 593 for eight declared. South Africa needed 122 to avoid the follow-on.
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 on an easy-paced pitch.
Amla 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.
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 season. He helped the KwaZulu -Dolphins to a share of the four-day title.
Kallis became the first South African and 17th player in history to score 8000 Test runs before becoming the only man to be dismissed during a morning's play extended by half an hour to make up for some of the time lost earlier in the match.
South Africa added 117 runs during the morning.
Kallis reached the 8000 mark when he was on 60 and 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.