No. 8 bludgeons his way to 62 off 38 balls as South Africa reach target of 263 with 16 deliveries to spare.
Joe Root's second successive century for England in vain.
A swashbuckling half-century by Chris Morris hauled South Africa back from the brink of defeat as they scraped past England by one wicket on Friday to level the one-day series at 2-2 with one match left.
The all-rounder, batting at number eight, bludgeoned his way to 62 off 38 balls to help South Africa reach their target of 263 with 16 deliveries to spare after Joe Root had made his second successive century for the tourists.
Leg-spinner Adil Rashid clean-bowled Morris with a googly with the scores level but number 11 Imran Tahir struck the next ball for four to the relief of a capacity crowd of 22,000.
However, it could have been a different story for South Africa had Morris not been dropped by Rashid when he was on 14.
"We have put in a lot of work on my batting so I'm really happy I can contribute," Morris told the presentation ceremony.
"I'm very grateful to all the coaches that have thrown balls for me.
"When (number seven) Dave Wiese got out I thought we were in strife. It was tense and luckily they dropped me."
Earlier, Root made 109 as England were bowled out for 262 in 47.5 overs.
The Yorkshireman, who struck an ODI-best 125 in a losing cause in Pretoria on Tuesday, saved Eoin Morgan's side after they had slumped to 108 for six.
Opener Alex Hales contributed 50 but it was a 95-run partnership for the seventh wicket between Root and Chris Woakes (33) that helped England, who won the Test series 2-1, post a defendable tally.
Rashid also chipped in with a quickfire 39 off 26 balls while paceman Kagiso Rabada took the last three wickets to finish with four for 45.
Hashim Amla was clean bowled for a duck by the recalled Stuart Broad in South Africa's first over and the home team looked in trouble when captain AB de Villiers was run out for 36 by the quick-thinking Woakes.
South Africa were then left teetering on the brink on 210 for eight before Morris came to their rescue.
"We were 30 or 40 runs short even though Joe Root was magnificent," said England captain Morgan.
"It was our game to win at the end. The bowlers bowled out of their skin and the most disappointing thing is we had chances."
The last game of the series is in Cape Town on Sunday.