England made their second-highest one-day international total to beat South Africa by 39 runs on the Duckworth-Lewis method in Bloemfontein.
Jos Buttler’s 73-ball century helped the tourists to 399-9, with Ben Stokes, Alex Hales and Joe Root passing 50.
Quinton de Kock’s unbeaten 138 off 96 balls kept the Proteas in contention.
But the loss of wickets at key times halted the home side’s momentum before rain ended the game with them on 250-5 to give England a 1-0 series lead.
The second ODI in the five-match series is in Port Elizabeth on Saturday.
The batting effort of captain Eoin Morgan’s men represents a continuation of the dramatic improvement in England’s limited-overs cricket since their woeful World Cup of 2015, when they were eliminated in the first round.
Since then, they have won a one-day series against World Cup runners-up New Zealand and Pakistan, as well as being narrowly beaten, 3-2, by world champions Australia.
They have also won five consecutive Twenty20 internationals since the World Cup in an overall run of seven successive T20 wins.
On Wednesday, England attacked throughout most of their innings, with Jason Roy taking early advantage of some tame home bowling on a benign pitch. He scored 48 off 30 balls before he was first man out, caught by Farhaan Behardien at cover off Morne Morkel.
Roy’s opening partner Alex Hales then came to the fore, adding 62 runs with Joe Root to take England to 130 before he, too, was caught at cover, by AB de Villiers off the bowling of Marchant de Lange for 57.
Buttler then came to the wicket, where he would remain for 17 entertaining overs of clean hitting that propelled the tourists towards their huge total.