AB de Villiers led from the front with a 24th one-day international century to cancel out Alex Hales’ earlier ton and guide South Africa to a five-wicket series-clinching win in Cape Town.
Hales had made 112 after England were put in, but found little in the way of meaningful support as the tourists were bowled out for 236 with five overs to spare.
Reece Topley then grabbed three early wickets as Eoin Morgan’s men threatened to defend a below-par total, but De Villiers added 125 with Hashim Amla and an unbroken 71 with David Wiese to lead his side to a 3-2 series victory, despite having lost the first two games.
England had been convincing winners in Bloemfontein and Port Elizabeth, but after Quinton de Kock and Amla’s centuries kept the Proteas’ hopes alive at Centurion, a batting collapse and several dropped catches denied the tourists in Johannesburg on Friday.
De Villiers, making his 200th ODI appearance, won the toss and elected to field for the second game running, and was rewarded for some brave captaincy when leg-spinner Imran Tahir trapped Jason Roy lbw in the fifth over.
Hales and Joe Root, who had made centuries in England’s last two defeats, added 61 for the second wicket at a good pace but Root also fell to Tahir – who had an lbw appeal overturned on review – for 27.
Morgan edged a wide delivery from Wiese to wicketkeeper De Kock for two, before Ben Stokes added a typically lively 29 before Kagiso Rabada bowled him behind his legs.
That sparked a slump which saw England lose their last seven wickets for 72, with Jos Buttler bowled by Rabada’s first legitimate delivery to him, Moeen Ali picking out Farhaan Behardien at cover off Kyle Abbott, Chris Woakes chipping Wiese to Abbott on the boundary and Adil Rashid swiping the same bowler to Rabada at mid-off.
Hales had made half-centuries in all four previous games in the series, and amidst the chaos at the other end reached three figures before holing out attempting to pull Rabada on 112.
Stuart Broad hit Tahir for the second six of the innings but was last out when he attempted to repeat the trick and skied the ball to De Villiers at cover.
With 30 balls wasted, England’s total was clearly below par, but they made a good fist of defending it thanks to an excellent opening burst from Topley.
The Hampshire left-armer had De Kock caught behind on review, bowled Faf du Plessis with an inswinger first ball, then had Rilee Rossouw held by Hales at short extra cover in his next over.
However, the experienced pair of Amla and De Villiers proceeded to shift through the gears as they took the game away from England, with both reaching half-centuries before Amla was stumped attempting to charge Moeen.
Behardien was caught at mid-on attempting to take Rashid on down the ground, but Wiese produced some lusty blows and De Villiers worked the ball to all corners of the ground as the hosts eventually cruised home to the delight of a bumper Newlands crowd.