Only Kane Williamson reached double figures but his top score of 13 was typical of a New Zealand batting display which crumbled in just 19.2 overs.
In the two remaining overs before lunch South Africa lost captain Graeme Smith when he was trapped lbw by Doug Bracewell to leave the home side's reply on three for one.
But Amla and Alviro Petersen put on a century before the second wicket fell as the tourists were made to work hard in the field.
Amla had scored 66 when he played around a delivery from James Franklin and fell lbw, leaving the home side on 108 for two.
Petersen (45) and Jaques Kallis (6) guided South Africa to 119 for two at tea and a lead of 74 runs.