The Proteas set England a target of 230, which is the second-highest total in the history of the competition.
The breakthrough was eventually made by Moeen Ali, who dismissed De Kock for 52 off just 24 balls.
Ali was also the man to end the run of Amla, who returned to the pavilion after hitting 58 runs off 31 deliveries.
The prolific batsman hit 83 runs, which included six fours and four sixes, off just 44 balls, but he was eventually stopped in his tracks by Kagiso Rabada.
Captain Eoin Morgan could only contribute 12 runs before he was bowled out by Duminy, but it was a dramatic end to the match as England required 11 runs from 10 balls.
Chris Jordan gave his side hope when he hit a four to bring the target down to two from seven, but the nerves rose to the surface when he was dismissed and David Willey was run out for a duck in the next ball.
England needed one run from four balls and they were able to see it through thanks to Ali and Adil Rashid.