South Africa 325 for 6 (du Plessis 100, van der Dussen 95, Lyon 2-53) beat Australia 315 all out (Warner 122, Carey 85, Rabada 3-56)
They have one foot on the plane home, and South Africa have finally turned up at the World Cup. In the final league game of the tournament, the Proteas corrected many of the mistakes that had plagued their campaign to secure a consolatory 10-run victory over Australia at Old Trafford.
Their batsmen have struggled to convert starts, yet here there were very nearly two tons scored, Faf du Plessis leading the way with a round 100 and Rassie van der Dussen backing him up with 95. Kagiso Rabada has struggled for incision in the UK, but he bounced back with three vital wickets. And where they have wilted under pressure in previous games, South Africa steeled themselves to come out ahead in the crunch moments, holding the catches that mattered and weathering David Warner's third hundred of the World Cup and a career-best knock from Alex Carey to secure a winning end to the ODI careers of Imran Tahir and JP Duminy.
The result means that it's the old firm, Australia v England, who will meet in the second semi-final at Edgbaston on Thursday. New Zealand will play India in the first semi, here at Old Trafford, on Tuesday.
Twenty years on from the Greatest ODI Ever, this wasn't quite the game it could have been had South Africa's campaign through this tournament charted a different course. But on a day when 640 runs were scored and the final result was not decided until the penultimate delivery of the match, this was still an excellent exhibition of cricket, and du Plessis, accepting the Player of the Match award, said that South Africa's first World Cup win over Australia since 1992 meant they would at least " go home with a smile, a small smile".
Watch on Hotstar (India only) - Faf du Plessis' 100
Du Plessis also had a smile on his face when he brought up a cathartic hundred in the 43rd over. He got close in South Africa's last match against Sri Lanka, finishing on 96 not out while completing a nine-wicket win, but if there was any team against which you'd back du Plessis to score a hundred, it's probably Australia. He now has eight tons against them, across formats, and averages well over 50 against Australia in ODIs. "I do like playing against Australia, I've tried to figure out why I bat nicely when I play them as compared to the other teams," he said afterwards.
Whatever the reasons, Australia certainly seem to bring out a defiant streak in him, and a keenness for a scrap. It was there in his hundred on Test debut in Adelaide almost seven years ago, in his four previous hundreds against them in ODIs, and it was there again as he hit Mitchell Starc out of the attack early in his knock, and charged Pat Cummins to smite him back over his head later on.
He was helped along the way by van der Dussen, who once again showed the composure that is becoming his calling card during a 151-run third wicket stand. Van der Dussen seemed to have been ruffled when he was struck on the head by a Cummins bouncer before he had reached double figures, offering up three half-chances in the space of two overs thereafter, but once he settled back down he gave further indications that he will be a vital part of South Africa's immediate post-World Cup future and came within a couple of feet of clearing Glenn Maxwell in the deep and bringing up what would have been a maiden international ton off the last ball of the innings.
He didn't quite get there, but he and du Plessis had done enough for South Africa to build a challenging total from what was - by far - their best start of the tournament with the bat. With Hashim Amla sidelined by an injury picked up during a warm-up game of football on Friday, Aiden Markram opened with Quinton de Kock and together they cruised through the Powerplay at seven an over before they were eventually parted by Nathan Lyon.
Australia needed a similarly rapid start from their openers to set up their chase, but du Plessis decision to open the bowling with Tahir brought immediate dividends. Finch chipped the first ball of Tahir's second over to a diving Markram in the covers, and for the last time in ODI cricket Tahir set off on a solo celebratory run into the outfield.
Worse was to come for Australia as Usman Khawaja tweaked a hamstring running between the wickets and had to leave the field having faced just five deliveries. Khawaja came out to bat later in the innings, but Finch admitted that things "don't look ideal" afterwards and he could join Shaun Marsh on the injury list ahead of the semi-final. And his wasn't the only injury worry for Australia, with Marcus Stoinis also batting through some discomfort that seemed to be located in his lower back, and Starc showing some strain on his knee in the midst of a generally off-colour performance with the ball.
One area that certainly won't be a worry, however, is Warner's form. Once again, he took his time to settle at the top of the innings, but when he got going, he was virtually unstoppable. A quick single to mid-off took him to a 58-ball fifty in the 18th over, and he only built momentum even as two moments of brilliance from de Kock in the field - an unsighted, back-handed run-out and a leaping one-handed catch - sent Stoinis and Maxwell packing.
Wickets in the middle put South Africa ahead, but Warner found an able partner in Carey, whose crisp hitting added 50 to a sixth-wicket stand of 108. It took a sprawling blinder of a catch from Morris, tumbling to his left at mid-on, to get rid of Warner, but Carey wasn't done yet, and he proceeded to record his highest ODI score before holing out on the cover boundary in pursuit of an unlikely victory.
Unlikely looked like impossible when Cummins and Carey both fell in the space of four deliveries as the match neared its end, but Khawaja hobbled back out to the middle and, with Starc, proceeded to take 17 from Morris' ninth over to keep Australia in the hunt. A Rabada double-strike, and a nerveless final over from Andile Phehlukwayo, put paid to those hopes.