Amla made 311 not out as South Africa declared on 637 for two at tea, a first innings lead of 252. He and Jacques Kallis (182 not out) put on an unbeaten 377 for the third wicket, a record for South Africa against England.
It was another day of toil for the England bowlers, who conceded two successive double century partnerships for the first time in their 924-Test history.
Amla and captain Graeme Smith added 259 for the second wicket on Saturday, also a record against England.
It was a relentless performance by the South African batsmen on a dry pitch which is yet to deteriorate to the extent expected earlier in the match.
Amla, who gave his only chance when he was on 40 on Friday, went past numerous landmarks, lifting the tempo of his innings but seldom playing a false stroke.
He beat his own previous highest score, 253 not out against India in Nagpur in 2009/10.
Next to fall was the highest score against England, 277 by Smith at Edgbaston in 2003. Then a clip through midwicket for four off Tim Bresnan took him past the South African record of 278 not out by AB de Villiers against Pakistan in Abu Dhabi in 2010.
England set ultra-defensive fields but could not halt the flow of runs.
With Amla on 299, England captain Andrew Strauss brought the field up to stop a single but the batsman played a rare lofted drive for four over cover to earn a prolonged standing ovation from the crowd.
Kallis reached his 43rd Test century in measured style off 227 balls but then went on the attack as South Africa took the match far beyond England's reach.
Amla reached his double century off 392 balls and needed only another 123 deliveries to reach 300 with his 35th boundary.
Scores:
England: 385 (Alastair Cook 115, Jonathan Trott 71, Matt Prior 60; Morne Morkel 4-72, Jacques Kallis 2-38, Dale Steyn 2-99)
South Africa: 637-2 dec. (Hashim Amla 311 not out, Jacques Kallis 182 not out, Graeme Smith 131; James Anderson 1-116, Tim Bresnan 1-140)
Leading Test scores by South African batsmen (player, runs, opponents venue, year):
Hashim Amla 311 not out v England The Oval 2012
AB de Villiers 278 not out v Pakistan Abu Dhabi 2010
Graeme Smith 277 v England Birmingham 2003
Daryll Cullinan 275 not out v New Zealand Auckland 1999
Gary Kirsten 275 v England Durban 1999
Graeme Pollock 274 v Australia Durban 1970