An eye-catching all-round performance by Mitchell Marsh helped Australia return to winning ways as they beat South Africa by 62 runs on Tuesday in Harare to secure their place in the triangular series final.
Marsh struck a brutal 86 not out from 51 balls to boost the Australian total to 282 for seven, and then took two key wickets as South Africa were bowled out for 220 in spite of Faf du Plessis' superb hundred.
It was the best response Australia could have hoped for after they were humiliated by hosts Zimbabwe on Sunday to leave their participation in Saturday's final in doubt.
South Africa's own qualification will only be confirmed on Thursday, though they would need to be heavily beaten by Zimbabwe in the final round robin game to miss out.
Australia's innings had been pedestrian up until Marsh's arrival, with Phil Hughes rarely getting into his full stride in the course of his 85 and South Africa picking up regular wickets after winning the toss and electing to bowl.
Although Hughes put on 85 for the second wicket with Steve Smith, who returned to the Australian side and batted at No. 3 following Michael Clarke's injury-enforced departure, the spin duo of Imran Tahir and Aaron Phangiso picked up three cheap wickets.
Phangiso recorded figures of 2 for 39 in his 10 overs, and his dismissal of skipper George Bailey left Australia 187 for five in the 42nd over.
However Marsh's big hitting came to the rescue as he smashed seven sixes, including three in three balls off Dale Steyn, and ensured Australia took 85 runs from the last seven overs.
"I think if we have to pinpoint somewhere that we lost the game it was with Mitchell Marsh's innings," Du Plessis said.
"Their innings was set up to get to 240 or 250, so we as a bowling unit will be disappointed for him to score so many sixes in the way that he did."
South Africa's innings never really got going, with Du Plessis playing a lone hand as only three other batsmen reached double figures.
Marsh grabbed the important scalp of Hashim Amla and then broke a promising partnership between Du Plessis and Duminy when the left-hander gifted a simple catch to fine leg.
Mitchell Johnson took care of David Miller and gave Ryan McLaren a fearful working over, and although McLaren battled through, he eventually fell to Kane Richardson for 24.
"To be honest, even when we were going and I was scoring the runs I always felt like the target was a bit too far away, with us losing wickets all the time," Du Plessis said.
"You hit a couple of boundaries but then you look up and you still need 120."
Left with too much to do, Du Plessis was out in bizarre fashion when he trod on his off-stump to depart from 126 from 109 deliveries.
Johnson and Glenn Maxwell cleaned up the tail, and South Africa were bowled out in 44 overs to give Australia a bonus point.