England, set 221 for victory, made 224 for four with 20 balls to spare.
Ian Bell top-scored with 88, with Eoin Morgan was 36 not out and Craig Kieswetter, who finished the match with a six off fast bowler Dale Steyn, unbeaten on 21.
Earlier, South Africa’s 220 for eight after losing the toss saw England off-spinner James Tredwell take three wickets for 35 runs in eight overs.
The series concludes in Nottingham on Wednesday.
Tredwell had kept his place after figures of two for 49 during England’s four-wicket win at The Oval on Friday which levelled the five-match series at 1-1. The Kent bowler only got his chance when England rested Graeme Swann for the rest of this series because of a longstanding elbow injury.
Brief scores: South Africa 220-8 in 50 overs (H Amla 45; J Tredwell 3-35) beat England 224-4 in 46.4 overs (I Bell 88, J Trott 48; D Steyn 2-47) by six wickets.