De Kock slog fyra sexor i en lysande 135 och Amla gjorde 127 när värdarna nådde sitt mål på 319 med 22 bollar att spara på Centurion.
Joe Root slog fem sexor i 125 - hans högsta en dag internationella poäng - men Englands 318-8 visade sig vara otillräcklig.
England leder serien 2-1 med två matcher att spela.
Kommer tillsammans på 36-1 efter Jason Roy kördes ut för 20, Root delade ställningar på 125 med Alex Hales (65 off 73) och 82 med Ben Stokes (53 off 37).
Hales och Root spelade förnuftigt för att lyfta upp sina femtiotal i 23:e över men Hales, som gjorde 99 i den andra ODI, kom ut när han krokade Kagiso Rabada direkt till Morne Morkel på den fina bengränsen.
I-form Jos Buttler befordrades till nummer fyra men var ute första bollen, blixtra Rabada till ben raggy.
England kapten Eoin Morgan kämpade för att hitta sin timing, arbetar till åtta off 24 bollar innan han fångades i mitten av veken.
Men Root fortsatte att slåss med skicklighet, nå sina hundra off 95 bollar, och sedan slå två sexor och en fyra från hans nästa tre leveranser.
Yorkshireman slutligen sprang ut i 43: e över när en rak körning ricocheted av non-striker stubbar in i bensidan fältet och en förväxling med Stokes lämnade den 25-årige strandsatta.
Stokes tävlade till sina 50 i 33 bollar - och trots en rusning av sena wickets som Kyle Abbott tog två i två, David Willey och Adil Rashid lagt sena körningar för att ställa Sydafrika ett testmål.
De Kock och Amla ignorerade åskan och blixten mullrande runt stadion för att få Sydafrika till en perfekt start.
De Kock drog fördel av allt något brett medan Amla rörde sig runt vecket för att störa bowlarens linjer, vilket gör det möjligt för duon att ta upp sitt sekelstånd i 18: e över.
Englands spinnare skålade i tandem men kunde inte bromsa poäng, med De Kock knäcka tre sexor på väg till hans århundrade från 96 bollar.
Anstormningen fortsatte med att Amla stödde De Kock från andra änden och piskade bollen av hans ben för en sexa när Englands bowlare allt mer avgick till sitt öde.
Stället bröts slutligen när De Kock tämjde Rashid till Root i mitten av veken.
Men Amla nådde sitt århundrade för att flytta nivå med Chris Gayle, Tillakaratne Dilshan och Sourav Gaguly på sjunde plats i den all-time ODI århundraden lista.
Den 32-årige såg sitt lag till gränsen till seger innan han greps bakom Chris Jordan med bara åtta körningar krävs.
Faf du Plessis slog en sexa för att nivå poäng och sedan slog den vinnande kör nästa boll för att hålla serien vid liv på väg till Johannesburg på fredag för den fjärde matchen.
England kapten Eoin Morgan: "Jag tyckte 318 var en bra poäng. Wicketen blev lite värre när våra innings fortsatte och lite slitage kröp in, men Joe Root var enastående.
"De hade en otrolig öppning partnerskap men jag trodde att vi lät dem komma undan. Bollen svängde inte tidigt så vi var tvungna att gå tillbaka till att slå våra längder, och vi gjorde inte det tillräckligt bra för att skapa tryck. "
Sydafrika kapten AB de Villiers: "Vi behövde den segern, och jag tyckte att pojkarna spelade riktigt bra. Vi hade lite bråttom och hunger på fältet. Vi har inte haft den bästa serien förrän idag, men det visar vilken attityd vi har.
"Vi har lite lokal kunskap. Jag är härifrån och så är ett par killar i laget och vi känner att det definitivt är en jagande typ av Wicket. Jag vann inte kastet, men jag skulle bowla först ändå. Det är mycket svårt att försvara här på natten."
Före detta Englandöppnare Geoffrey Boycott:
"Jag tror inte England gjorde så mycket fel i sin bowling, och deras fält var ganska bra, men ingenting hände för dem. Rashid skålade ganska bra - han försökte blanda upp det eftersom Wickets var allt.
Teamet saknar något. Steven Finn och Stuart Broad skulle båda förbättra det. Reece Topley behöver lite mer fart och jag oroar mig för Jordan. Han är en fantastisk fältarbetare, men Finn och Broad är bättre bowlare och lägger till något mer.
"Men i slutändan kan vi fortfarande ha förlorat eftersom Amla spelade så bra och De Kock scintillating."
Quinton de Kock och Hashim Amla satte på 239 för den första wicketen att hjälpa Sydafrika slå England med sju wickets i den tredje en dag internationella.