Loading markets...

Seamer Vernon Philander was the main destroyer, starting the collapse with the wicket of Martin Guptill in his opening over.

Philander also removed McCullum, Dean Brownlie, Williamson and BJ Watling inside the first 10 overs and finished with figures of 5-7.

Dale Steyn became the 25th bowler - and fourth South Africa after Allan Donald, Shaun Pollock and Makhaya Ntini - to reach 300 Test wickets when he demolished Doug Bracewell's stumps to reduce New Zealand to 31-7.

Steyn (2-18) and Morne Morkel (3-14) ran through the tail in quick time, Daniel Flynn - who faced 28 balls for his eight runs - was last out, caught-and-bowled by Steyn. New Zealand's effort was their third lowest Test total and the lowest by anyone since 1974.

South Africa lost skipper Graeme Smith lbw for one to Doug Bracewell (1-77) in the second over of their reply but Alviro Petersen and Hashim Amla combined for a second-wicket stand of 107 in 24.1 overs either side of lunch to swiftly move the home side into credit.

After Amla departed lbw to left-arm seamer James Franklin (1-23) for a 74-ball 66, Kallis continued the aggressive approach alongside Petersen, enjoying his landmark moment before edging behind off Trent Boult (1-53).

There was no stopping Petersen, who brought up the fifth Test century of his career from 170 balls shortly before the close to cap a day of dominance for his side.