The paceman finished with 5-18 off 10 economical overs as South Africa dismissed England for a paltry 154 before racing to the target with more than 30 overs to spare in what was a must-win Super Eights match for both teams.
South Africa made a mockery of the England total, with skipper Graeme Smith (89 not out) and AB de Villiers (42) putting on 85 for the opening wicket off just 59 balls in a one-sided contest.
The victory also ended the West Indies' slim chances of advancing in the tournament as South Africa (eight points) now joined defending champions Australia (12), New Zealand (10) and Sri Lanka (8) in the semi-finals.
England, who have beaten only debutants Ireland and Bangladesh in the second round, remained on four points with just one game to go against the hosts, who have two points from five matches.
England virtually went out of the game after a dismal batting performance against a sharp South African attack on a Kensington Oval pitch having both pace and bounce.
Fast bowler Andre Nel (3-35) was the first to rock England when he bagged two key wickets in his fiery opening spell, getting rid of struggling skipper Michael Vaughan and in-form Kevin Pietersen.
England's batting hardly looked convincing against pace as none of their batsman could reach a half-century. Andrew Strauss (46), Paul Collingwood (30) and Ravi Bopara (27 not out) batted defiantly, but it was just not good enough.
They lost their last seven wickets for a meagre 43 runs, much to the disappointment of their supporters.
In contrast, South Africa's batting bloomed right from the beginning as De Villiers and Smith put England to the sword with their aggressive knocks.
De Villiers hit eight fours in his brisk 35-ball knock.
Smith smashed 13 fours in his 58-ball innings, his fifth half-century in the ongoing tournament.
England earlier failed to lift their batting performance.
Pietersen was involved in a brief fascinating duel with South Africa, the country of his birth. He was tested by Nel with a bouncer and was struck on the body off the next delivery.
Pietersen, his team's leading scorer with 341 runs before this game, looked subdued during his brief stay at the crease before falling to a diving catch at mid-off of Nel.
Smith, who has been involved in a war of words with Pietersen, dived forward to bring off a low catch to spark wild on-field celebrations.
Vaughan's nightmare run with the bat continued when he was trapped leg-before by Nel after making 17. The England skipper has so far scored 130 in eight matches at the World Cup, without a half-century.
Andrew Flintoff was bowled middle-stump by a gem of a Hall delivery which came in sharply off the wicket. Like his captain, the all-rounder is also struggling for runs having now made 77 in seven matches.