England were 79 for four at lunch on the fourth day, with all their top four dismissed in Monday's morning session.
They needed a further 395 runs to reach a huge winning total of 474 but that now appeared to be a purely notional target.
Philander removed left-handers Keaton Jennings (three) and Gary Ballance (four) during a burst of two wickets for eight runs in 19 balls.
Jonny Bairstow was 12 not out and Ben Stokes five not out at lunch.
The most made by any side to win in the fourth innings of a Test is the West Indies' 418 for seven against Australia at St John's in 2002/03.
But the more immediate task for England was to see if they could avoid defeat with more than a day to spare, after they had gone 1-0 up in this four-match series with a 211-run win inside four days in the first Test at Lord's.
England resumed on one for nought, courtesy of a leg bye.
Philander, renowned for his ability to move the ball at a lively fast-medium pace, needed just five deliveries Monday to strike from the Pavilion End.
South Africa-born Jennings was undone by an excellent ball that nipped back to uproot his off stump.
Ballance, in his third stint of Test cricket and under huge pressure for his place, was then lbw to Philander after Australian umpire Simon Fry saw a decision overturned for the fourth this match when replays showed a skidding delivery had pitched in line and would have hit leg stump.
England were 28 for two, with Root once more coming in after a top-order slump.
Root had made 190 in his first innings as England captain at Lord's and top-scored with 78 in their meagre first innings 205 this match.
But he fell cheaply on Monday, Morris producing an excellent yorker with just his seventh ball of the day to knock over the Yorkshireman's off-stump.
Cook, however, struck four fours in eight balls off Duanne Olivier, only playing this match after fast bowler Kagiso Rabada was suspended for swearing at Stokes at Lord's.
But Cook's near two-hour innings ended when he was beaten for pace by a well-directed Morris bouncer and gloved down the legside, where wicket-keeper Quinton de Kock held a fine catch.
(This story has not been edited by Business Standard staff and is auto-generated from a syndicated feed.)