Moeen Ali and Stuart Broad both starred with bat and ball to leave England well-placed come the close of the second day of the first Test against South Africa at Lord's on Friday.
Ali made 87 and Broad an unbeaten 57 - his first Test fifty in four years - as England piled up 458 all out in their first innings.
The pair then shared four wickets between them to reduce South Africa to 4-104 with Ali completing the Test all-rounder's double of 2,000 runs and 100 wickets by striking twice with his off-spin.
But Temba Bavuma (48 not out) and Theunis de Bruyn (48) realised crease occupation alone would not get South Africa out of the hole they were in.
Quick Single: Rabada banned for Stokes send-off
But de Bruyn, only playing because regular captain Faf du Plessis was on 'paternity leave', fell for 48 shortly before the close and at stumps the Proteas were 5-214 - still 244 runs behind in the first of this four-Test series.
Nightwatchman Kagiso Rabada was nine not out.
England resumed on 5-357, with Joe Root 184 not out in his first Test as England captain.
Ali was 61 not out and just 12 runs away from reaching 2,000 in Tests.
England twice lost two wickets for no runs in three balls on Friday yet still got beyond 450 thanks to an entertaining last-wicket stand of between Broad and James Anderson.
Root had made the most of being missed several times on Thursday to lead an England recovery after the hosts had been in trouble at 4-76.
But the first chance he gave on Friday brought about his downfall on 190 - the highest score by an England captain in his first Test in charge, surpassing Alastair Cook's 173 against Bangladesh in 2010.
There was no reprieve when the 26-year-old Yorkshireman was caught behind off fast bowler Morne Morkel -- denied a wicket Thursday by a no-ball.
Root walked off to a standing ovation from a capacity and sun-drenched crowd, having batted for over six hours, facing 234 balls including 27 fours and a six.
Two balls later, Liam Dawson was lbw to Morkel for a duck.
The first over after the drinks break again saw England lose two wickets, with Ali falling in sight of a sixth Test century when bowled trying to drive Rabada.
An undaunted Broad, who made his Test-best 169 against Pakistan at Lord's in 2010, struck shots worthy of his father Chris, the former England opener.
He pulled Morkel for two sixes in as many balls to complete a dashing 45-ball fifty.
It was Broad's most fluent Test innings since he was hit in the face by a Varun Aaron bouncer against India at Old Trafford in 2014.
No.11 Anderson then pulled Rabada for six to bring up England's 450 before he was caught behind to give Morkel his fourth wicket of the innings.
South Africa's Dean Elgar tried to lead from the front in a match where he too was captaining in a Test for the first time.
After the early loss of debutant opening partner Heino Kuhn, the left-hander displayed his customary resilience during a 90-ball fifty.
But Hashim Amla, so often a thorn in England's side, was dismissed for just 29 when lbw to a sharply turning off-break from Ali.
After Tea, Elgar fell for his interval score of 54 when caught off bat and pad by Gary Ballance at short leg as Ali, in his 38th match at this level, became the fifth-quickest player in Test history to do the 'double'.
South Africa's 3-98 became 4-105 when JP Duminy (15) was plumb lbw to Broad.
But Bavuma, unafraid to drive Ali down the ground, counter-attacked.
De Bruyn offered good support until he was caught behind after carelessly pushing away from his body at Anderson.