London: Jonny Bairstow marked his return to the England side with a valuable unbeaten 72 to rescue them from deep trouble in the final Test against South Africa.
Recalled in place of Kevin Pietersen, Bairstow saw the hosts from a perilous 54-4 to 208-5 by the close of the second day at Lord's - trailing by 101.
He added a defiant 124 for the fifth wicket with Ian Bell, who made 58.
England, however, like South Africa, were staging something of a recovery from 54 for four -- remarkably both sides lost their fourth wicket on the same score.
South Africa, 1-0 up in the three-match series, only have to avoid defeat at Lord's to replace England as the world's top-ranked Test side.
Morkel struck first when, off the last ball before lunch, he bowled England captain Andrew Strauss, playing his 100th Test and 50th as skipper on his Middlesex home ground, between bat and pad with a well-directed delivery from around the wicket.
That meant Strauss would have to wait to see if he could join South Africa captain Graeme Smith in scoring a hundred in his 100th Test after the Proteas skipper achieved the feat in an innings victory in the series opener at The Oval.
Steyn then removed Jonathan Trott, lbw on review, and Alastair Cook, well caught by Jacques Kallis at second slip, for single figure scores.
James Taylor was then caught by first slip Smith off tall paceman Morkel, and Bairstow, recalled in place of Pietersen, walked out with England in a dire position.
Bairstow had managed just 38 runs in his first three Tests, all against the West Indies, earlier this season, before he was dropped after struggling against the short ball.
South Africa posted a short leg and Bairstow had an uncomfortable start, with his first boundary a streaky edge through the slips.
Earlier, Vernon Philander's maiden Test fifty helped South Africa past the benchmark total of 300 after they started Friday on 262 for seven.
His 61, the joint top score of the innings along with that of JP Duminy, enabled South Africa to recover from the shock of seeing Middlesex fast bowler Steven Finn, who finished with four for 75, rip through their top order.
Philander, 46 not out overnight, shared several useful lower order partnerships as he completed a 75-ball fifty, including five fours, having surpassed Thursday his previous Test best of 29 against New Zealand at Wellington in March.
His more than three hours of resistance ended when he was last man out, stumped slogging at off-spinner Graeme Swann.
Brief scores
South Africa 309 (Philander 61, Duminy 61, Finn 4-75)
England 94 for 4 (Bairstow 72*, Bell 58)
Status England trail by 101 runs