Johannesburg: Chris Morris's batting heroics secured South Africa a thrilling one-wicket victory in the fourth one-day International despite Joe Root century, level five match series 2-2.
Fifth and final match will be played on Sunday at Newlands, Cape Town.
England looked to be heading for victory when they reduced South Africa to 143-5, with AB de Villiers brilliantly run out by Chris Woakes.
But Chris Morris hit a superb 62 from 38 balls as South Africa reached the target with 16 balls to spare.
Morris was bowled with the penultimate ball of the match to set up a dramatic finish, but Imran Tahir - who had earlier starred with three wickets - hit Adil Rashid for four to seal victory.
Earlier, Joe Root hit his second successive century as England recovered from a top order batting collapse. Root made 109 in an England total of 262 after they were sent in to bat on what is normally a high-scoring one-day ground.
It was a total that had not seemed likely when England were floundering at 108 for six after losing five wickets for 21 runs.
Leg-spinner Imran Tahir took three wickets in seven balls to spark the England collapse after Root and Alex Hales (50) had taken the tourists to 87 for one.
Seamer Kyle Abbott followed up with two wickets in successive overs to plunge England into disarray.
But Root and Chris Woakes (33) batted sensibly in a seventh wicket stand of 95 off 100 balls to rebuild the innings.
Root, who made a career-best 125 in a losing cause in the third match in Centurion, reached his eighth one-day international century off 119 balls and faced a total of 124 deliveries, hitting 10 fours and a six.
Hales made his fourth half-century in as many innings before he was caught on the midwicket boundary off Tahir after putting on 69 for the second wicket with Root.
Adil Rashid hit a rapid 39 off 26 balls before he was last man out.
Kagiso Rabada took four for 45, while Tahir claimed three for 46. It was the first time in the series that a team was bowled out.
Brief scores
England - 262 (Root 109, Hales 50, Rabada 4-45, Tahir 3-46)
South Africa - 266/9 (Morris 62, Rashid 2-38)
Result - South Africa won by 1 wicket