Sublime centuries from Ben Stokes and Ben Foakes gave England complete control of the second Test against South Africa after two days at Old Trafford.
Stokes' first hundred as captain and wicketkeeper Foakes' first at home took England to 415-9 declared, a first-innings lead of 264.
South Africa battled to 23-0 by the close, 241 behind.
Stokes and Foakes came together at 147-5 with England four runs adrift after Anrich Nortje removed Jonny Bairstow and Zak Crawley.
Their sixth-wicket stand of 173 has left England primed to level the series at 1-1 with one match to play.
Both men overturned lbw decisions, while Stokes was dropped on 92 before falling for 103.
Foakes was not out on 113 when England's declaration gave South Africa nine overs to survive in the evening sunshine.
Although openers Dean Elgar and Sarel Erwee came through, the Proteas face a huge task to even drag this contest into a fourth day.
England emerge from thrilling battle
England's dominant position is in stark contrast to a gripping morning session when the game hung in the balance as the terrifying Nortje threatened to undo the hosts' good work from day one.
After England resumed on 111-3, Nortje found reverse swing at high pace to have the poking Bairstow held at first slip for 49 then ended Crawley's resistance on 38 with a wonderful delivery that was edged behind.
The Stokes-Foakes rebuild was not based on the swashbuckling style favoured by England so far this summer, but through careful, correct and classical Test batting.
The gradual grinding down of the South Africa attack came on a pitch that is wearing quickly and delighted a boisterous crowd.
The name of James Anderson was sung as the local hero emerged to loosen up between innings and Anderson thought he had snared Erwee lbw, only for the left-hander to survive England's review.
All is not lost for South Africa. If they can in any way match England's effort with the bat, a fourth-innings target of 150 could prove tricky given the state of the pitch and quality of the touring attack.
But England are massive favourites for victory, possibly by an innings before Saturday is out.
Stokes brings the drama in more ways than one
Stokes' century came on the day his documentary Phoenix from the Ashes was released.
It was an innings that had its own share of theatre. His troublesome left knee needed treatment when he had only 16, he successfully reviewed being given leg before to Lungi Ngidi on 72, and Aiden Markram failed to hold what would have been a stunning catch at cover as Stokes attacked the second new ball.
The captain signalled his intent by sweeping the first ball he faced from dangerous off-spinner Simon Harmer for six, but this was not the slogging Stokes that has been on display for much of the summer.
Realising the game situation, Stokes batted with control in taking 98 balls for his first 41 runs. Thereafter he scored at almost a run a ball, including two more sixes lofted down the ground.
He took tea on 98 not out then celebrated his 12th century with the familiar bent finger tribute to his late father Ged, made all the more poignant given the personal struggles Stokes detailed in the run-up to this match.
A swipe at Kagiso Rabada resulted in a skied catch to mid-off, ending another magnificent display by England's talismanic all-rounder.
Foakes the perfect foil
Foakes is quietly establishing himself under the leadership of Stokes and coach Brendon McCullum. Already among the leading glovemen in the game, he is averaging 45 with the bat for England this summer.
This was an unflappable century, only the second by an England wicketkeeper in a home Test since 2016 and Foakes' first since a ton on debut in Sri Lanka nearly four years ago.
Matching Stokes' patience, Foakes scored with wristy whips through mid-wicket and was happy to hook when South Africa tested him with bouncers.
He had 28 when he overturned being given out lbw to left-arm spinner Keshav Maharaj, the closest he came to giving a chance.
Foakes' hundred came with a cut for four off Nortje and he had the pleasure of remaining unbeaten when the dismissal of number 10 Jack Leach signalled England's declaration.