Published: 2017-08-06 14:51:40 BdST
Anderson's 4-33, ably supported by fellow seamer Stuart Broad, reduced South Africa to 220-9 at the close and gives England, who lead 2-1, a great chance of securing their first home series win over the Proteas since 1998.
Earlier Anderson had provided support to Jonny Bairstow, who struck a brilliant 99, 46 of those runs coming in a last-wicket 50-run partnership with the bowler.
Bairstow's enterprising and entertaining knock ensured England made a good first-innings total of 362.
Lancashire paceman Anderson certainly enjoyed the chance to bowl from the newly named 'James Anderson End' at his home ground - with all of his wickets coming from there.
"I felt like I couldn't bowl badly, certainly this morning," he said. "It feels very strange still to hear it be announced, but I'm thrilled and nice to get some wickets there as well."
Hashim Amla looked in good shape, but after making 30 runs off 35 balls, he edged a leg-side delivery from Toby Roland-Jones to Bairstow.
The surface was looking increasingly placid and while England's seamers were accurate and keeping the run-rate down, they were not posing too many questions for Heino Kuhn and Temba Bavuma.
The pair looked to have dug themselves in but spinner Moeen Ali, a hat-trick hero in the last Test, tempted Kuhn forward with a nicely flighted delivery and Ben Stokes pocketed the catch at slip.
After tea, though, Anderson produced a devastating spell of three wickets from 24 balls as England turned the screw.
Bavuma (46) misjudged by leaving a ball which cut back in to take his off-stump. Two balls later the crowd sensed a major momentum shift when skipper Faf du Plessis's inside edge rattled the stumps.
Theunis de Bruyn tried to drive a full-length delivery from Anderson but was undone by the movement and edged to England skipper Joe Root at second slip.
Keshav Maharaj misjudged the length of a Moeen delivery and found himself on the back foot, hit on the pads in front of the wicket as the tourists reeled.
Quinton de Kock showed some resistance, making 24 runs from 66 balls, before he nicked Broad's rising delivery to the grateful Bairstow.
Broad struck again in the final over of the day, with Stokes producing a brilliant, low, diving catch at gully to dismiss Kagiso Rabada.
The day had begun promisingly for South Africa who had made quick progress in the morning session, picking up three early wickets to have England at 312 for nine.
But Bairstow, rotating the strike well, went on the offensive, with his fine attacking innings including a superb straight six off Duanne Olivier.
The Yorkshireman, who had been dropped by wicketkeeper De Kock on 53, fell just one short of his fourth Test century, ruled lbw after attempting to sweep spinner Maharaj.
Seamer Rabada finished with figures of 4-91.