On a chaotic morning at Newlands, Steve Smith first ruled himself out of the series decider with a neck injury before Pat Cummins sent the Proteas in on a straw-coloured pitch under largely blue skies.
South Africa then reached 0-158 with Cummins' decision heavily criticised, before Starc's haul led a fightback and the Proteas at one stage lost 5-29 mid-innings.
By stumps the day was back in the balance, with Starc taking four wickets with the second new ball in the space of six deliveries to have the hosts all out at stumps.Â
With the ball swinging, Starc trapped Ryan Rickelton (42) lbw, bowled Marco Jansen (52) and Gerald Coetzee (0) before also getting Kagiso Rabada (0) lbw.
Australia have a chequered history at the picturesque Newlands ground, including being bowled out for 47 there in 2011 and the ball-tampering scandal on their last visit in 2018.
And for the first session on Tuesday, it looked like another grim chapter was coming as Australia sunk to their worst start in a Test after electing to bowl in 56 years.
The decision to bowl first was questionable from the moment Aiden Markram pulled Cummins' fifth ball for six, sending it deep onto the hill over mid-wicket.
At that point, the Test was only 6.5 overs old.
Marques Ackerman hit another one over long-off off Lyon shortly after he was brought on in the 11th over, before taking Cummins over fine leg for the morning's third six.
In all the Proteas hit 23 boundaries in Tuesday's first session alone. Australia's morning was summed up when Markram hit Starc straight to cover on 39, only to see Travis Head put down the simplest of catches
Starc's reaction, as he put his collar between his teeth, said it all.
Ackerman raised his half-century off 62 balls, before also hitting Starc for four straight boundaries through mid-wicket and gully before lunch.
But when Lyon (2-71) smartly darted a ball out wide with Ackerman keen to charge him on 95 after lunch, the left-hander fell and the tourists saw an opening.
The spinner also took Temba Bavuma's off stump for a third-ball duck, after being recalled in place of Scott Boland after the Victorian's five-wicket haul last week.
In between Starc took a diving catch at backward square leg to have Markram's wicket, when the opener skied Josh Hazlewood high into the Cape Town air trying to pull.
Cooper Connolly got his first Test wicket when he had Matthew Breetzke lbw for two, and Starc struck twice in the same over after tea with the short ball prompting careless batting.
One of those was again from a neat piece of fielding, Hazlewood taking a ball above his head at fine leg and then tossing it up as he played jump rope with the boundary to remove David Bedingham on 50.
And while Jansen and Rickelton put on 95 for the seventh wicket after tea, Australia still have a sniff at Newlands.
Which is more than appeared the case at lunch, when their hopes of keeping the top spot in the ICC rankings and claiming a series victory in South Africa looked in dire straits.
Meanwhile, Smith's absence, after he briefly batted in the nets on Tuesday morning, made for four changes for Australia, their most mid-series since after the events of Cape Town 2018.
Josh Inglis came in for the vice-captain, while Boland, Nic Maddinson and Beau Webster were dropped following last week's thrashing in Gqeberha with Lyon, Connolly and the fit-again Cameron Green all coming in.