Proteas captain Hashim Amla has confirmed that the world's second-ranked Test bowler will be replaced by Kagiso Rabada for the match in Cape Town, which begins tomorrow.
Steyn took four wickets in England's first innings in the recent first Test in Durban, but was then only able to bowl three overs in the second innings before damaging his right shoulder.
England went on to record a 241-run victory over the world's top-ranked Test nation and the tourists will be buoyed by the news of Steyn's absence for the second Test, especially as they are able to welcome back their all-time top Test wicket-taker James Anderson.
South Africa might also lose another bowler as Kyle Abbott is struggling with a hamstring problem. If he has to sit out as well, then one of Hardus Viljoen and Chris Morris will come in.