Cape Town - Ben Stokes launched an astonishing assault and Dom Sibley made an unbeaten century as England took full command on the fourth day of the second Test against South Africa at Newlands on Monday.
England declared their second innings on 391 for eight shortly after lunch, setting South Africa the huge task of making a world record 438 to win.
South African opening batsmen Pieter Malan and Dean Elgar took their team to 46 for no wicket at tea.
Stokes slammed 72 off 47 balls to overshadow a maiden Test century by Sibley, who continued his sedate progress as he took his overnight score of 85 to 133 not out. He reached his hundred off 269 balls and faced 311 deliveries in his innings.
England's batting on Monday was in dramatic contrast to their effort on Sunday when they ground their way to 218 for four off 79 overs. Sparked by Stokes they added another 157 runs off only 32 overs before the declaration.
While Sibley continued to play the anchor role, Stokes went on the attack against every bowler he faced. He survived a chance on 38 when an attempted pull against Kagiso Rabada could not be held by a diving Quinton de Kock after the wicketkeeper ran about 35 metres in trying to take the catch.
Stokes was caught at long-on off left-arm spinner Keshav Maharaj after an innings which included three sixes and seven fours and had a large English contingent in the crowd roaring their approval.
Ollie Pope fell quickly but Jos Buttler continued the attack, hitting 23 off 18 balls as the lead went beyond 400.
South African captain Faf du Plessis chose not to take the second new ball when it was due after a maiden over by Dwaine Pretorius at the start of play. He perhaps reasoned that Maharaj had a chance of dismissing Stokes early in his innings.
The tactic backfired, however, as 28 runs were added in five overs before the new ball was taken, including sixes by Stokes off Pretorius and Maharaj.