That left England 215 runs adrift of the tourists first innings 309.
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.
Ian Bell was 20 not out and Jonathan Bairstow 19 not out, with their stand now worth 40.
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. England saw Steyn take two wickets for one run in four balls and Morkel two for three in 11.
Earlier, Vernon Philander’s maiden Test fifty helped South Africa past the benchmark total of 300 after they started on 262 for seven.
Photos: Shah Rukh Khan, Shweta Bachchan at Karan Johar's book launch
Photos: Sunny Deol with sons Karan and Rajvir at Mumbai airport
Photos: 10 beautiful moments that capture winter around the world
Photos: Karisma Kapoor, Preity Zinta, Shraddha Kapoor at Mumbai airport
Spotted: Anushka Sharma and Diljit Dosanjh at Mumbai studio