South Africa 259 for 3 (de Kock 107, Bavuma 98) bt England 258 for 8 (Denly 87, Woakes 40, Shamsi 3-38) by seven wickets
Is this a new South Africa? Regardless of how this series ends or the eventual outcome of the hosts' substantial rebuilding project, the answer, today, was yes.
De Kock and Bavuma put on a 173-run stand which blew South Africa's previous best second-wicket partnership against England away and delivered a huge confidence boost after a disappointing World Cup and, more recently, a 3-1 Test series defeat to England.
South Africa lost opener Reeza Hendricks cheaply, but not until the seventh over as he and de Kock made a controlled start.
Bavuma joined de Kock with their side 25 for 1 and the pair played with poise and sense, never letting the required run rate out of site, running well between the wickets and not succumbing to any rash shot-making of the kind that drew criticism towards de Kock during the Test series.
Bavuma, who forced his way back into the Test side for the fourth and final match at Johannesburg with some scintillating form on the domestic circuit, fell two runs shy of a second ODI century in just his third appearance.
De Kock's 107 off 113 balls oozed composure but was not without excitement, like the massive six off Tom Curran that landed on top of the sightscreen and stayed there, or the four thumped off the back foot through midwicket to bring up his 5000th ODI run. Then there were consecutive fours through the covers to bring up his 15th one-day century.
It was only when Joe Root re-entered the attack in the 36th over that de Kock fell, bowled as he missed an attempted slog-sweep.
Rassie van der Dussen, who made his Test debut against England in December and finished as the fifth-highest run-scorer of the series - and South Africa's second-highest behind de Kock - entered with his side needing 61 off 89 balls.
Even when Bavuma was trapped lbw by Chris Jordan, ending a wonderful knock on 98 off 103 balls, there was no sense of panic and van der Dussen and Jon-Jon Smuts guided South Africa to the target with 14 balls to spare.
World Champions England doled out caps at opposite ends of the spectrum, handing debuts to Tom Banton and Matt Parkinson and marking Chris Woakes' 100th ODI. But it was their team-mate with a curious mix of age and ODI inexperience, Joe Denly, who played the innings England needed after falling to 83 for 4 and then 131 for 6 as they battled the spin of Tabraiz Shamsi.
Denly scored his third ODI half-century and his first in the eight innings he has played since his previous fifty, against Australia in September 2009.
After being overlooked for the World Cup, Denly was given the chance to establish himself as a limited-overs player when he was awarded his first white-ball contract at the end of last summer. If his first innings since is any gauge, Denly has set himself on course to do so, with a fine 87 off 103 balls to help England to 258 for 8 from their 50 overs when a much smaller total had looked likely earlier.
South Africa also had two debutants, batting allrounder Smuts and quick Lutho Sipamla, and it was in fact the spin of Smuts that made the breakthrough they needed.
Jason Roy and Jonny Bairstow brought up England's 50 off 54 balls to set a strong foundation.
Roy hit his stride by punishing Beuran Hendricks with three consecutive fours through long-on, long-off and extra cover but he also rode his luck, dropped on 24 by Andile Phehlukwayo off the bowling of Lungi Ngidi and barely evading the reach of van der Dussen as he cleared midwicket.
As their stand reached 51, Roy lofted Smuts down the ground and found Reeza Hendricks at long-on to fall for 32 from as many balls. Bairstow followed his opening partner back to the pavilion a short time later, crashing a drive off Phehlukwayo straight to Sipamla at mid-off.
A brilliant piece of fielding from van der Dussen broke a third-wicket stand worth 30 runs between Eoin Morgan and Root. Morgan swept Shamsi but van der Dussen was so sharp with his diving intercept at backward square he had all the time in the world to rise to his knees and take middle stump out of the ground with a throw fired in from nearly 30 metres away, as a sprawling Root was found well short of his ground.
Shamsi removed Morgan just three balls later, edging to Bavuma who took a strong slips catch diving low to his left.
Banton reached 18 off 23 balls but he was found wanting when he dropped to his knee looking to slog-sweep Shamsi and was struck high on his back thigh and given out lbw, failing to have the decision overturned on review when ball-tracking showed the delivery was headed for the top of off stump.
Shamsi claimed his third wicket when he bowled Sam Curran round his legs.
That brought Woakes to the crease and he joined Denly in settling the England innings, contributing 40 as the pair put on 91 runs for the seventh wicket.
Denly accelerated through the closing overs, clubbing Ngidi some 87 metres over cow corner for six - the first maximum of England's innings. He dealt out more of the same in Ngidi's next over with a scornful smash over the fence at long-off.
Denly was finally brought undone when he sent Beuran Hendricks to Reeza Hendricks in the deep with four balls remaining, his efforts at least giving England a fighting total - until de Kock and Bavuma played their part.