There had been whispers about Stokes' potential for a while. He had thumped a maiden Test century at the WACA in 2013, and the fastest Test century ever made at Lord's, in 2015. Just before this match, he forced a net bowler to hospital, having thrashed a ball back at him in training.
But few could have predicted the outrageous brutality of this innings. Few could have predicted how quickly he would score, how hard he would hit the ball, or how complete his dominance over the South Africa bowlers would be.
The descriptions are vivid and the statistics remarkable, but it was the look on the faces of the South African players that most eloquently told the story. As Stokes' innings progressed from entertaining, through immense and on to ridiculous, the looks changed from frustrated to angry to awestruck. As ball after ball flew over their heads or into the boundary before they had the chance to react, they understood they were witnesses to something very special and had no power to prevent.
It was magnificent by any standards. For the youngest man in the England team, and a team averaging 27.72 in Test cricket before the innings began, it was incredible. As the report on this site said at the time, had Stokes worn a cape, he could not have looked more like a superhero.
At the other end Jonny Bairstow was compiling a high-class maiden Test century of his own. But here, as Stokes went from 100 to 200 in 58 balls, Bairstow had to be content with the role of support act.
While the pitch was flat and the attack as green as the outfield, Stokes had come to the crease with England precariously placed. Kagiso Rabada was on a hat-trick and England, at 167 for 4, were in danger of squandering first use of the surface. By the time he departed, 70 overs later, they were 622 for 6. Had England held their chances in the field (Alastair Cook reckoned they missed "seven or eight"), it may well have proved a match-winning innings.
There may have been more devastating innings played by England players - perhaps by Ian Botham or Kevin Pietersen? - but this was up there with the best of them.
"Play yourself in again," was Cook's advice to Stokes before play began on the second day. But, as Stokes recalled later, he "just got going and couldn't stop". Resuming on 74 overnight, he was fuelled by some overpitched bowling in the opening overs and thrashed seven of the first 15 balls he faced on the second morning to the boundary to bring up his century. And then he accelerated.
While it's true that South Africa seemed to lose the plot for a while, they could be forgiven for a certain amount of shell shock. It didn't seem to matter if they went straight or wide or full or short: this was Stokes' morning. He struck 15 fours and six sixes in the session, and at lunch was unbeaten on 204.
It was a daunting display of power, allied to some sweet timing and a range of stroke that allowed no margin for South Africa's unfortunate bowlers.
163 The number of balls required by Stokes to reach his double-hundred. Only Nathan Astle (153) has got there in fewer deliveries in Test history.
130 The number of runs hit by Stokes in the morning session of day two. No batsman has ever hit more in the first session of a Test day.
399 The stand between Stokes and Bairstow was England's second highest in Test cricket, the highest for the sixth wicket by any team in the history of Test cricket, and the highest for any wicket by any team in a Test in South Africa.
11 Stokes' tally of sixes was the joint second highest in a Test innings. Only Wasim Akram (12) has hit more.
What they said
"I will probably never play like this ever again in my life." - Ben Stokes
"It was unbelievable batting. Frighteningly good. He is a gem and now the world knows how good he is." - Alastair Cook
"It's one of those days where you just have to take your cap off and say, 'Well done, you won the battle. I can't fault our bowlers at all." - Dean Elgar
The closest contenders
Virat Kohli, 235 v England, fourth Test, Mumbai
This sublime double-hundred on a spinning wicket made Kohli the first Indian to score three double-centuries in a year.
Kusal Mendis 176 v Australia, first Test, Pallekele
Walking in at 6 for 2, with his side still 80 short of making Australia bat again, Mendis' 176 in a team total of 353 turned the Test around.
George Dobell is a senior correspondent at ESPNcricinfo