Heinrich Klaasen and Rassie van der Dussen scored half-centuries as South Africa eased to a comfortable seven-wicket win over England in Karachi to book a semi-final place at the Champions Trophy.
South Africa bowled England out for 179 in 38.2 overs after the latter had chosen to bat, before reaching their target with a huge 125 balls to spare following a 127-run third-wicket stand between Klaasen (64) and Van der Dussen (72 not out).
They top Group B and join Australia, India and New Zealand in the semi-finals, with the fixture line-up to be confirmed when the latter two meet in Dubai on Sunday.
The match was the last in charge for England captain Jos Buttler, who is to step down from his role after the side lost all three pool fixtures in the tournament.

Largest-ever FIFA World Cup kicks off in Mexico
Real Madrid appoint Jose Mourinho as new manager
Mexico have history, pressure hosting South Africa in World Cup opener
Bangladesh stun Australia to claim maiden ODI series win
Wimbledon announces record 20% rise in prize money
