South Africa's Quinton de Kock got a second straight fifty while Anrich Nortje bowled a tight final over to help their side edge England by seven runs on Friday and move closer to a semi-final berth with back-to-back wins in the Super Eight stage.
The victory in Gros Islet moved South Africa to the top of the group with four points from two matches. England, second with two points, can still make it to the semis.
Put in to bat first, openers De Kock (65 off 38) and Reeza Hendricks (19) got South Africa off to a good start, scoring 63 runs in the powerplay as an in-form De Kock reached a half-century in just 22 balls, his second fifty in row.
"I've played a few (Caribbean Premier League) games here," player of the match De Kock said, crediting his league experience for his knowledge of the playing conditions at the Daren Sammy Cricket Ground.
But South Africa added only 29 runs in the next six overs with both openers falling to Moeen Ali (1-25) and Jofra Archer (3-40), while Adil Rashid (1-20) kept a tight lid on the scoreboard.
However, David Miller (43 off 28) stepped up under pressure to get the runs flowing again, helping South Africa get to a competitive 163-6.
As England began their chase, Kagiso Rabada (2-32) dismissed Phil Salt (11) early on before Keshav Maharaj (2-25) got the better of Jonny Bairstow (16) and Jos Buttler (17), leaving the champions looking shaky at 61-4 in the 11th over.
But Harry Brook (53 off 37) and Liam Livingstone (33 off 17) stabilised their innings, and with 77 needed from the last six overs, they went for the big hits, scoring 54 runs from the next three overs until Livingstone fell to Rabada.
England needed 14 from the last over, but Nortje (1-35) got Brook out on the first ball and allowed only six runs, restricting England to 156-6.
"Getting to those last three overs, the odds looked heavily against you," South Africa captain Aiden Markram said. "But the bowlers coming back it shows a lot of skill but it also shows the fight inside.
"As a whole, I'd say we're getting closer to that complete game of cricket."
Unbeaten in the tournament, South Africa play hosts West Indies in their last Super Eight match on Sunday, while England face the United States.
Source: Reuters