The home team were 29 for no wicket in reply at the close after a day interrupted by rain and bad light.
England, after winning the toss and choosing to bat, were rocked by three wickets from Morkel in his first five overs as they crashed to 39 for four.
Paul Collingwood and Ian Bell lifted the visitors to 100 for four at lunch but there was more misery in the second session as Steyn sparked a collapse of six for 80 to finish the innings with five for 51.
Collingwood and Bell shared a stand of 76 before debutant Ryan McLaren had the former caught at point off a leading edge for 47.
Bell was then bowled for 35 by a good ball from Steyn that came back through the gate.
England lead the series 1-0.
SCOREBOARD
England first innings
A. Strauss c Amla b Steyn 0
A. Cook lbw b Morkel 21
J. Trott lbw b Morkel 5
K. Pietersen c Parnell b Morkel 7
P. Collingwood c Duminy
b McLaren 47
I. Bell b Steyn 35
M. Prior c Boucher b Steyn 14
S. Broad c Morkel b Kallis 13
G. Swann c Boucher b Steyn 27
R. Sidebottom c Boucher b Steyn 0
J. Anderson not out 6
Extras: (lb-2, w-3) 5
Total: (all out; 47.5 overs) 180
Fall of wickets: 1-0 2-7 3-32 4-39 5-115 6-133 7-136 8-148 9-155
Bowling: Steyn 13.5-1-51-5 (w-1), Morkel 11-1-39-3 (w-2), McLaren 10-3-30-1, Parnell 3-0-18-0, Kallis 10-3-40-1.
South Africa first innings
G. Smith not out 12
A. Prince not out 15
Extras (lb-1, nb-1) 2
Total: (no wicket, 12 overs) 29
To bat: H. Amla, J. Kallis, A. de Villiers, JP. Duminy, M. Boucher, R. McLaren, M. Morkel, D. Steyn, W. Parnell.
Bowling: (to date): Anderson 6-2-14-0 (nb-1), Sidebottom 6-2-14-0.