The Proteas needed to win by 58 runs to qualify for the semi-finals
Former champions England sailed into the semi-finals of the Twenty20 World Cup despite their 10-run loss to South Africa on Saturday with Ashes rivals Australia also making the last four from Group I.
Kagiso Rabada's final over hat-trick came too late for South Africa who lost out to Australia on net run-rate count after the three sides ended with eight points from five matches.
With Australia beating holders West Indies in the previous match of the day, South Africa needed a victory and a massive run-rate boost to make the last four.
They showed intent with the bat too and Rassie van der Dussen blasted an unbeaten 94 off 60 balls to propel them to 189-2, their highest score of the tournament.
South Africa had to restrict England to 131 or fewer to make the semi-finals ahead of Australia, while scoring 87 was enough for Eoin Morgan's team.
Moeen Ali (37) and Dawid Malan (33) chipped in with breezy cameos to snuff out South Africa's semi-final hopes but England could not maintain their unblemished group record and finished on 179-8.
"Very happy topping the group, we know how hard it is to get through," Morgan said after the loss.
"Every game tests us in different ways... Today our batters could have been more expressive and bowlers had to find a defensive mode."
In another setback for the 2010 champions, Jason Roy's tournament appeared over after the opener retired hurt with a calf injury.
Earlier, put into bat, South Africa lost Reeza Hendricks early but van der Dussen and Quinton de Kock (34) propped up the innings with a 71-run stand.
Roy took a diving catch near the rope to send back de Kock but another partnership, bigger and more blistering, bloomed when Aiden Markram walked in.
Van der Dussen and Markram tore into the English attack, combining to hit Chris Woakes for three sixes in an over during their century-plus partnership.
Markram smashed four sixes in his unbeaten 52 off 25 balls, while van der Dussen clobbered six of them.
Roy (20) combined with Jos Buttler (26) to give England a flying start before retiring hurt with a leg injury.
Two quick, big wickets followed with Buttler falling to Anrich Nortje and Tabraiz Shamsi trapping Jonny Bairstow lbw.
Liam Livingston (28) smashed Rabada for three consecutive sixes to knock South Africa out of the tournament but the pacer could not be denied a personal milestone.
Defending 14 runs in the final over, Rabada dismissed Woakes, Morgan and Chris Jordan off successive deliveries.
"Win was important, but a bittersweet ending for us," South Africa captain Temba Bavuma said.
"We achieved what we wanted to do in terms of winning, but we didn't win well enough."