Scorecard | Match pictures | Champions Trophy page
Hosts England whipped chokers South Africa by seven wickets on Wednesday to march into their second Champions Trophy final.
It was a win set up by the home team's bowling after skipper Alastair Cook elected to field, with wicket-keeper Jos Buttler snatching a record-equaling six catches.
Seamer James Anderson (2/14 in eight overs) and off-spinner James Tredwell (3/19 in seven) decimated a jittery South African line, reducing them to 80/8 in 23 overs.
Although young southpaw David Miller (56*) and fast bowler Rory Kleinveldt (43) launched a brave counterattack with a record-breaking 95-run alliance, England were essentially untroubled in their chase of 176, as Jonathan Trott (82*) and Joe Root (48) played the saviours.
England will meet the winner of the second semifinal between India and Sri Lanka, to be played on Thursday, in Sunday's final.
Trott was all poise and balance. He added 105 with Root to rescue England from potential danger, after early blows left them insecure on 41/2.
Openers Cook and Ian Bell were both caught behind, leaving Trott and young Root to engineer a comeback. The 32-year-old Trott belied his usual ODI strike rate by several points and struck 11 sweet hits to the fence, as he needed just 84 balls to bring up his highest score of the tournament.
Seeing victory near, an adventurous Root fell a couple short of his fifty when, having struck Duminy for commanding boundaries, he was bowled attempting the paddle sweep. But England were not to be denied and Trott, now with Eoin Morgan for company, guided the side home with a massive 75 balls to spare.
Earlier, David Miller and Rory Kleinveldt smashed a record ninth-wicket stand to lift South Africa to 175 from a perilous 80/8 in the 23rd over.
Miller hit an unbeaten 56 and Kleinveldt chipped in with a career-best 43 during a 95-run partnership, South Africa's highest for the ninth wicket that surpassed the 65 put on by Wayne Parnell and Dale Steyn against India in Jaipur 2010.
Miller, who rose to fame with a 38-ball century in the Indian Premier League this year, clobbered five boundaries and two sixes.
Steyn misses out
Kleinveldt, replacing the unfit Dale Steyn, hit a six and four fours, as the pair prevented a total collapse after England won the toss and elected to field in overcast conditions.
Seamer Stuart Broad and off-spinner James Tredwell claimed three wickets each and James Anderson took two for 14 in eight overs.
Wicket-keeper Jos Buttler held six catches in an impressive display by the hosts in front of 25,000 fans at the Oval.
South Africa lost both openers, Colin Ingram and Hasim Amla, off the first 10 deliveries of the match to make it 4/2.
Star batsman Amla, who hit a Test triple-century at the same venue last year, was caught behind off Steven Finn for one. Ingram was leg-before to Anderson.
Pinch-hitter Robin Peterson smashed 30 a third-wicket stand of 41 with Faf du Plessis before becoming Anderson's second leg-before victim in the 11th over.
Two overs later, the Proteas suffered a major blow when skipper AB de Villiers gifted his wicket with a wild drive off Broad that was edged to the wicket-keeper.
Tredwell made up for the absence of the injured Graeme Swann as he had JP Duminy leg-before in his second over and got du Plessis caught behind in his third.
South Africa slumped to 70-6 in the 19th over and it soon became 76-7 when Ryan McLaren was run out by an alert Jonathan Trott in the slips as the batsman stepped out to drive Tredwell.
Fantasy cricket: Was Jonathan Trott in your team?