Cape Town: Brutal batting from Ben Stokes and Jonny Bairstow broke a host of records as England declared on 629 for six before South Africa replied with 141 for two at the close of play on the second day of the second Test at Newlands on Sunday.
Stokes bludgeoned the fastest 250 in Test cricket in a 399-run world-record partnership for the sixth wicket with Bairstow, who was 150 not out after scoring a maiden Test century.
Hashim Amla (64 not out) and AB de Villiers (25 not out) were defiant at the close as South Africa cut back the deficit to 488 runs.
On a day like few others in test history, England set about the home bowling with abandon, approaching the first session as if it was a Twenty20 game with relentless attacking that never waned.
England resumed on 317-5 but raced to 513-5 at lunch in a morning session of 196 runs before declaring some 30 minutes before tea after amassing the highest first-innings total in a test at the picturesque Cape Town ground at a rate of some eight runs per over.
Stokes, who was 74 not out overnight, scored the second fastest double century in test history, his 200 coming off 163 balls, 10 more than record holder Nathan Astle of New Zealand.
England's previous fastest was by Ian Botham who took 220 balls.
The 24-year-old Stokes reached his 250 off 196 balls, beating Virender Sehwag's former record for India (207), and was eventually run out for 258 after facing 198 deliveries, a knock which included 30 fours and an England-record 11 sixes.
Stokes also set the highest score by a test batsman at number six, passing a 39-year-old mark held by Australian Doug Walters.
He was eventually out in something of an anti-climax as he skied a shot to De Villiers, who dropped a simple-looking catch only to sweep up the ball and hit the stumps to run out Stokes as he ambled back to the crease.
South Africa's horror day did not end after the declaration, which came when Bairstow got to 150.
Stiaan van Zyl was run out for four in the third over of their first innings, setting off for a quick run but being sent back by opening partner Dean Elgar.
Stokes then reminded the hosts of his all-rounder ability with a rising ball which removed Elgar for 44 after a thick outside edge found the diving hands of Nick Compton at backward point.
De Villiers was dropped on five by Joe Root at second slip, while Amla's half-century was his first in exactly a year as he battles with poor form and continuing questions around his captaincy.
England lead 1-0 in the four Test series after a 241-run victory in Durban last week. - Reuters
England 1st innings (Overnight: 317-5)
A. Cook c Morris b Rabada 27
A. Hales c de Villiers b M. Morkel 60
N. Compton c Bavuma b Rabada 45
J. Root c de Kock b Morris 50
J. Taylor c de Kock b Rabada 0
B. Stokes run out ( de Villiers) 258
J. Bairstow not out 150
M. Ali not out 0
Extras (b-12, lb-6, nb-8, w-13) 39
Total (for 6 wickets declared, 125.5 overs) 629
Fall of wickets: 1-55, 2-129, 3-167, 4-167, 5-223, 6-622
Did not bat: S. Broad, J. Anderson, S. Finn
Bowling: M. Morkel 29-5-114-1 (nb-1, w-5), C. Morris 28-3-150-1, K. Rabada 29.5-2-175-3 (nb-7, w-8), D. Piedt 25-5-112-0, S. van Zyl 10-0-43-0, D. Elgar 4-0-17-0
South Africa 1st innings:
D. Elgar c Compton b Stokes 44
S. van Zyl run out 4
H. Amla not out 64
A. de Villiers not out 25
Extras (lb-2, w-2) 4
Total (for 2 wickets, 43 overs) 141
Fall of wickets: 1-7, 2-85
To bat: Q. de Kock, T. Bavuma, F. du Plessis, D. Piedt, C. Morris, K. Rabada, M. Morkel
Bowling: J. Anderson 9-2-24-0, S. Broad 9-2-32-0, M. Ali 9-1-30-0, S. Finn 9-1-30-0, J. Root 1-0-3-0, B. Stokes 6-1-20-1 (w-2)
Umpires: Aleem Dar and Bruce Oxenford
TV umpire: Rod Tucker
Match referee: Ranjan Madugalle
* Ben Stokes and Jonny Bairstow set a world record sixth wicket partnership with 399 runs, beating the previous best of 365 set by New Zealand's Kane Williamson and BJ Watling against Sri Lanka last year.
* Stokes' 258 was the most runs by a batsmen at number six, beating the previous best of 250 set by Australia's Doug Walters against New Zealand in 1977.
* Stokes made the fastest 250 in Test history, reaching the landmark off 196 balls.
* Stokes hit 11 sixes, the most in a Test innings by an England cricketer. It was one short of Wasim Akram's world record of 12 set against Zimbabwe in 1996.
* England made the highest ever first innings score at Newlands.
* Stokes fell four runs short of the highest Test total at Newlands. Stephen Fleming of New Zealand scored 262 against South Africa in 2006.