Pakistan had crawled to 10 in the eighth over when they lost their first wicket.
Nasir Jamshed had just been dropped by Faf du Plessis at gully in looked a regulation chance and with his next ball Philander induced another edge that was comfortably taken by wicketkeeper AB de Villiers.
Jamshed had survived 23 balls for his three runs before loose front-foot drive cost him his wicket.
Mohammad Hafeez (17) was starting to flourish when he fell to Steyn, tentatively pushing forward to a full ball that pitched on off-stump and moved away. Graeme Smith pouched the catch at first slip.
Morkel adopted an attacking line into the body of the batsman and struck twice in his fifth over to leave the tourists reeling. When he finally did give Azhar Ali (4) some width, the batsman chased it but succeeded only in getting a thick edge through to de Villiers.
Four balls later Pakistan captain Misbah-ul-Haq was gone when he fended a rising delivery into his ribs with the gloves and Dean Elgar took the catch at short leg. At that stage the score was 33 for four.
Younus Khan (24 not out) and Asad Shafiq (11 not out) steered the side to lunch without further loss, though neither looked comfortable at the crease.
South Africa won the first test of the three-match series by 211 runs at the Wanderers, when they bowled Pakistan out for their record lowest test score of 49 in the first innings.