Faf du Plessis smashed a third century in four matches as South Africa beat Zimbabwe by 63 runs on Thursday (local time) to set up a final showdown with Australia in the triangular series tournament.
Zimbabwe were bowled out for 208 in reply to South Africa's imposing tally of 271 for six off their 50 overs in the last of the round-robin matches.
It was always going to be difficult for Zimbabwe, who upset Australia in their last match on Sunday, to beat South Africa and make a considerable improvement in their run rate in order to usurp their neighbours and advance to Saturday's series finale.
Zimbabwe needed to overhaul South Africa's total in just 29 overs to reach the final but fell well short despite wicket keeper Brendan Taylor amassing 79 in 96 balls.
"We were always behind the A-ball, losing too many wickets. But we've learnt a lot from engaging against the best and we can take a lot of positives from the experience," Taylor said.
Du Plessis, promoted up the South African batting order to three to fill a void for next year's World Cup, continued to flourish as he scored 121 after smashing five fours and four sixes in his knock.
He and JP Duminy put on a 103-run partnership for the fifth wicket to haul South Africa to a decent tally on a difficult surface with early morning turn for Zimbabwe's spin attack.
Du Plessis, when on 41, offered just one chance for a caught and bowled to John Nyumbu, but the spinner dropped the ball and then saw it spill onto the stumps and run out South Africa captain AB de Villiers at the non-striker's end.
Nyumbu eventually got Du Plessis' wicket three overs from the end after the batsman misjudged the ball while attempting a third successive six, allowing Elton Chigumbura to take a catch.
Duminy was caught and bowled by seamer Neville Madziva for a workman like 51.
South Africa topped the standings after winning three of their four matches, while Australia made sure their shock three-wicket defeat by hosts Zimbabwe did not cost them dear as they qualified for the final by winning two matches. Zimbabwe's win over Australia was their solitary success.
Should bouncers be banned from cricket?