Ben Stokes top-scored with 89, while England captain Eoin Morgan (57), Jason Roy (54) and Joe Root (51) all made fifties.
Proving yet again why he is 'undoubtedlty' the best fielder in his national team, South Africa skipper Faf du Plessis grabbed a stunning catch in the deep to dismiss Moeen Ali off the bowling of Ngidi. Faf held to the ball as he took a running catch near the boundary rope.
England, who last year set a world record for the highest one-day international total of 481-6 and have often blown teams away with the bat, were repeatedly pegged back by a Proteas side who deployed the slower ball to good effect.
England, after Britain's Prince Harry officially opened the tournament, lost a wicket second ball before Roy and Root shared a stand of 106 that was equalled by Morgan and Stokes.
South Africa captain Faf du Plessis, despite being without injured spearhead Dale Steyn, saw his decision to field rewarded in dramatic style when Imran Tahir struck with just the second ball of the match to dismiss Jonny Bairstow for a golden duck.
(With PTI inputs)