The Proteas, who won the toss, struck second ball to leave tournament hosts and favourites England one for one.
But Jason Roy (54) and Test skipper Joe Root (51) repaired the damage with a second-wicket stand of 106.
England, ideally, would have wanted one of the well-set duo to go on but instead they both fell soon after completing their fifties as South Africa took two wickets for four runs in four balls to leave the home side 111 for three in the 20th over.
Roy flat-batted an intended pull off seamer Andile Phelukwayo to South Africa captain Faf du Plessis at mid-off before Root failed to get over a ball from fast bowler Kagiso Rabada and was well caught by JP Duminy at backward point.
Earlier, South Africa made a sensational start when Du Plessis's decision to go against convention by giving the first over to a spinner was rewarded when leg-break bowler Imran Tahir had opener Jonny Bairstow caught behind for a golden duck with just the second ball of the match.