Alex Hales set up a chase of 263 with 99 before Jos Buttler finished the job in style to complete a five-wicket victory in Port Elizabeth that moved England 2-0 ahead of South Africa in the series.
Hales, usually a free-scoring opening batsman, had successfully adjusted his game to suit the challenging St George's Park pitch, displaying plenty of patience and graft during 42 overs at the crease.
The 27-year-old had to overcome hurdles along the way, having seen Jason Roy depart early and then Morne Morkel strike twice in quick succession late in the pursuit, but formed vital stands of 97 and 52 with Joe Root and Eoin Morgan respectively.
Hales looked certain to complete a second ODI ton until he departed in unfortunate circumstances when, attempting to pull Kyle Abbott, the ball cannoned off his thigh pad and brushed his bat before looping up to Quinton de Kock.
His 99 matched the score he compiled in a Twenty20 international against West Indies at Trent Bridge in 2012 and left England requiring another 61 to win.
But Buttler showed why was snapped up in today's Indian Premier League auction by blasting 48 off just 28 balls to lead England home with 22 deliveries to spare.
England now have a two-game lead in the five match series with Tuesday's encounter at Centruion potentially the decider. Robert Croft who has been working with the England team for the last 10 days or so won't be there to see it as he heads back to Wales early next week to begin his new role at Head Coach.
England return to Cardiff this year for two One-Day Internationals against Sri Lanka and Pakistan in July and September respectively with match tickets available from £35 for adults, £10 for juniors or £80 for a family ticket. Click
here for more details