Sydney - JP Duminy took a hat-trick as South Africa's bowlers set up a crushing nine-wicket Cricket World Cup quarter-final win over Sri Lanka in Sydney on Wednesday.
Sri Lanka, who won the toss, were bowled out for just 133 on a good Sydney Cricket Ground pitch.
After South Africa's pacemen reduced Sri Lanka to four for two, leg-spinner Imran Tahir (four for 26 in 8.2 overs) and off-spinner Duminy (three for 29 in seven) made sure the Islanders' innings never got out of first gear.
South Africa, so often labelled World Cup 'chokers', completed an emphatic win by finishing on 134 for one with 32 overs to spare.
Quinton de Kock, who had managed just 53 runs in six previous innings this World Cup, was 78 not out after hitting the winning boundary - his 12th four - off paceman Lasith Malinga.
Faf du Plessis was unbeaten on 21.
Victory meant the Proteas had, after several heartbreaking reverses that started at the SCG with a rain-affected semi-final loss to England in 1992, finally won a knockout match at the World Cup.
They will face the winners of Saturday's match between New Zealand and the West Indies in an Auckland semi-final on March 24.
South Africa's win meant there was no fairytale farewell for Sri Lanka batting greats Kumar Sangakkara and Mahela Jayawardene, for whom this was their last one-day international before retirement.
The pair, key members of the Sri Lanka side that lost the 2007 and 2011 World Cup finals, had been desperate to finish with a flourish.
But Sangakkara's record-breaking run of four successive ODI hundreds finally came to an end although the left-hander, who plans to continue in Test cricket, top-scored with 45.
Jayawardene, who has already bowed out of the five-day format, could only manage four on Wednesday.
Sangakkara and fellow left-hander Lahiru Thirimanne (41) put on 65 for the third wicket
But otherwise there was little batting resistance on a good pitch, with Sri Lanka -- the 1996 World Cup winners -- losing four wickets for two runs in nine balls as they slumped to 116 for eight.
South Africa's bowlers, often overshadowed in ODI cricket by their more celebrated batsmen, dominated Sri Lanka from the start.
Kusal Perera, promoted to open the innings, fell for three when he edged Kyle Abbott and was brilliantly caught left-handed, at the second attempt, by de Kock as the wicket-keeper dived in front of first slip.
Tillakaratne Dilshan was then out for a seven-ball duck, edging fast bowler Dale Steyn low to du Plessis at second slip.
Thirimanne, who struck five fours, exited when he chipped an easy return catch to man-of-the-match Tahir.
The Pakistan-born spinner then had Jayawardene mistiming a pull to short mid-wicket.
Sri Lanka, the reigning World Twenty20 champions, were now 81 for four in the 24th over.
There was no recovery, with Duminy dismissing Sri Lanka captain Angelo Mathews - one of several batsmen who contributed to their own dismissal with a poor shot - and then, at the start of his next over, recording the ninth World Cup hat-trick.
Duminy had Nuwan Kulasekara caught behind for one and debutant Tharindu Kaushal lbw for a golden duck on his ODI debut
In the midst of Duminy's treble, Tahir removed Thisara Perera as Sri Lanka's collapse continued.
Sangakkara was caught at deep third man off fast bowler Morne Morkel for 45 off 96 balls, including just three fours, before Tahir dismissed Malinga to wrap up the innings in a mere 37.2 overs.