James Anderson lived up to his stellar billing by claiming his best figures at Old Trafford as England reduced South Africa to 220-9 to establish a 142-run lead on day two of the fourth Test.
Anderson, who had the pavilion end renamed in his honour before day one, grabbed 4-33 to all but torpedo the tourists' hopes of securing a series-levelling victory.
England's leading wicket-taker took just three balls to make his mark from the James Anderson End, trapping Dean Elgar lbw for a duck before dismissing Temba Bavuma (46) and Faf du Plessis (27) in the space of three balls, adding the scalp of Theunis de Bruyn in the final session.
Anderson had earlier stood firm with the bat for 15 balls to share a last-wicket stand of 50 with Jonny Bairstow, who blazed a brilliant 99 to help England up to 362 in their first innings before the Yorkshireman fell one run short of his fourth Test century.
Bairstow began the day unbeaten on 33, with England 260-6, and cracked on after battling through a testing opening spell from Morne Morkel (2-92).
Nightwatchman Toby Roland-Jones fell early, picking out Bavuma at point off Kagiso Rabada (4-91), and Bairstow had barely posted his fifty when Moeen Ali (14) was caught low down by Du Plessis of the same bowler.
The end of the innings seemed imminent when Morkel bowled Stuart Broad third ball but Anderson walked out to the middle to rapturous applause from the home crowd and rose to the occasion.
The final pair needed a helping hand - Rabada missing out on a five-for when Quinton de Kock dropped an edge offered by Bairstow on the drive. The Yorkshireman had 53 at the time and made South Africa pay for the miss by striking his final 45 runs off 49 deliveries.
He moved into the nineties by advancing down the track and cracking Duanne Olivier for a straight six but the century proved a run too far - Bairstow reviewing in vain after attempting to sweep Keshav Maharaj, only for replays to show the delivery had just hit him in line.
South Africa had to survive four overs before lunch but lost Elgar in the first to an inswinger from Anderson, who might have had a second wicket in his first over only for a Heino Kuhn edge to fall short of Ben Stokes in the gully.
Hashim Amla (30 off 35) bedded in nicely only to fall to Toby Roland-Jones for the third time in as many innings when he was caught down the leg-side - Bairstow claiming his 100th dismissal as England wicketkeeper in 25 matches.
Bavuma, promoted up the order to four from six, battled hard in a patient third-wicket stand with Kuhn, who fell with tea in sight to become Ali's 19th Test wicket of the series - caught low down by Stokes at slip.
Belligerent Bavuma showed excellent judgement early in his innings but shouldered arms to an Anderson delivery that nipped back just enough to hit off-stump and two balls later Du Plessis dragged on.
Anderson nearly had his fourth when a rising delivery took the shoulder of De Bruyn's bat - the chance just eluding a diving Keaton Jennings in the gully - and a second tough chance went begging when Stokes was unable to cling onto a rapid edge offered by De Kock (24) as he cut hard at Ali on one.
The first miss was quickly remedied - Anderson forcing De Bruyn to edge to Joe Root at slip before Maharaj, dropped by Bairstow on one off Ali, fell lbw to become the spinner's 20th wicket of the series, surpassing the 19 wickets he took against India in 2014.
De Kock took longer to prise out - Broad (2-45) eventually finding the left-hander's edge to claim his 376th Test victim and match the career tally taken by West Indies legend Malcolm Marshall.
Rabada (23) frustrated England's attempts to wrap up the innings, sharing a 31-run stand with Morkel only to fall to a superb one-handed catch by Stokes moments before stumps.
Live coverage of the fourth Test between England and South Africa continues on Sky Sports Cricket - with over-by-over commentary and in-play clips on our live match blog - from 10am on Sunday.