Philander pulps Kiwis
Alviro Petersen struck a century after New Zealand were dismissed their third lowest Test score on the opening day of the two-match series against South Africa at Newlands.
Vernon Philander claimed five wickets as the tourists, who won the toss and elected to bat, were bowled out for a paltry 45 - after which the home side replied with 252 for three, a lead of 207.
Petersen finished unbeaten on 106 and there were also half-centuries for Hashim Amla and Jacques Kallis, who became the fourth player to pass 13,000 Tests runs.
Philander ripped through the New Zealand order as South Africa began the series in a manner befitting the world's number-one ranked side.
Only Kane Williamson reached double figures but his top score of 13 was typical of a batting display which crumbled in just 19.2 overs.
Philander struck in the second over, Martin Guptill's outside edge being snapped up by AB de Villiers behind the stumps.
The home crowd only had to wait four more overs before Philander struck for a second time, cleaning up Brendon McCullum for seven with a length ball which uprooted middle stump.
Three balls later, Dean Brownlie looped a catch to Graeme Smith at slip without scoring and the tourists were in trouble at 14 for three.
Philander returned to trap Williamson lbw before combining with de Villiers to oust BJ Watling for a duck.
Morne Morkel then got in on the act to dismiss James Franklin, caught by Smith for one, and when Doug Bracewell was bowled by Steyn for two, New Zealand were 31 for seven.
Jeetan Patel fell for five to a stunning one-handed Amla catch off Morkel, who then had Travis Boult taken behind. Steyn ended the rout when he caught and bowled Daniel Flynn for eight.
Philander was the star of the show with 5-7, but Morkel's 3-14 and Steyn's 2-18 were also impressive figures – the latter passing 300 Test wickets.
In the two overs before lunch South Africa lost captain Smith when he was trapped lbw by Bracewell, but Amla and Petersen put on a century stand for the second wicket.
Amla had scored 66 when he played around a delivery from Franklin and fell lbw, but Petersen and Kallis guided South Africa to 119 for two at tea, a lead of 74.
Kallis went past 13,000 runs when he attempted to drive Bracewell and a thick outside edge sent the ball to the third-man boundary at his home ground.
The all-rounder joins Sachin Tendulkar, Rahul Dravid and former Australia captain Ricky Ponting in reaching the milestone.
Kallis when he edged Boult to Watling, but Petersen and de Villiers steered South Africa to the close.