Jos Buttler cracked his fourth one-day international hundred, off just 73 balls, as England blasted 399-9 and beat South Africa by 39 runs on Duckworth-Lewis in a rain-hit first ODI.
Buttler (105 off 76 balls) smashed 11 fours and five sixes to help England to the imposing total, but a sensational century by South Africa's Quinton de Kock (138no off 96) saw the hosts threaten to pull off a spectacular win before the weather intervened.
South Africa were 250-5 after 33.3 overs of their run chase, needing a further 150 from the remaining 99 balls, but were well below the D/L par score, handing England an opening win in the five-match series.
Ben Stokes took a terrific one-handed catch to remove danger-man AB de Villiers for eight earlier in the innings, almost nonchalantly plucking the ball out of the air when running round on the long-on boundary.
Openers Jason Roy (48 off 30) and Alex Hales (57 off 47) got England off to a flier after Eoin Morgan won the toss and chose to bat first on a belting Bloemfontein wicket.
Roy - in the side despite having struggled with back spasms during the week - signalled his intent, striking the wayward South African seamers for seven fours and a six inside the first six overs.
England had already scored 68 when in the eighth over he picked out the man at cover, driving uppishly at Morne Morkel (1-70).
Hales picked up the mantle, putting aside his Test-series struggles to smash six fours and two sixes on his way to fifty, though he too gave his wicket away when well set, top-edging an attempted leg-side hoick off Marchant de Lange (2-87).
Buttler was promoted up to fourth in the order, the same spot he batted when smashing England's fastest-ever ODI hundred in their last outing against Pakistan in the UAE, and he and Root (57 off 55) set about adding 97 for the third wicket.
Root was eventually bowled, beaten by a beautiful in-swinging yorker from Chris Morris (3-74) in the 30th over, while captain Morgan (23 off 21) struck three fours and a six in a short stay at the crease.
A further enterprising fifty from Stokes (57 off 38) looked set to see England post a score of 400 for only the second time in ODIs, but a flurry of late wickets saw the side finish one short.
Buttler brought up his fourth ODI century in the 41st over - but fell three balls later - and although Stokes had some fun, striking four fours and three sixes, he was one of four wickets to fall in the final four overs.
England had an ideal start with the ball, with David Willey (1-30) picking up the key wicket of Hashim Amla - chopping onto his stumps - in the third over.
It belied the struggles to come, as De Kock and Faf du Plessis (55 off 44) pummelled England's attack for a 110-run partnership for the second wicket off only 83 balls.
But the golden arm of Moeen Ali (3-43) saw the back of Du Plessis - as he picked out Hales at deep midwicket - and brought about the demise of De Villiers, although Stokes can claim most of the credit after his stunning catch.
It bothered De Kock little as he motored on to his ninth ODI hundred off only 67 balls, but a steady stream of wickets at the other end threatened to undo his fine work, with JP Duminy (13) the next to perish, to Reece Topley (1-43), caught and bowled.
With stormy clouds circulating, De Kock and Rilee Rossouw (19) added 48 for the fifth wicket, but the latter became Moeen's third victim when looking - but failing - to launch the off-spinner over long-off, and within three balls of the wicket the teams were off for the rain.
No further play was possible, with De Kock sadly stranded unbeaten on 138, and England taking a 1-0 series lead with them into the second ODI at Port Elizabeth.
Watch highlights of England's victory over South Africa at 10pm on Sky Sports 2, then join us for the second ODI from 7.30am on Sky Sports 2 on Saturday.