Faf du Plessis hit his third century in four games as South Africa beat Zimbabwe by 63 runs today to book a date with Australia in the triangular series final.
Du Plessis' 121 carried the Proteas to 271 for six after they were put in to bat in Harare, before JP Duminy picked up three wickets as Zimbabwe were bowled out for 208.
Zimbabwe had to chase down their target in 25.2 overs if they were going to gain a bonus point and improve their net run rate sufficiently to knock South Africa out, but didn't even come close to winning with Brendan Taylor's 79 the only score of note.
Also Read
Instead South Africa ended up winning with a bonus point to top the standings, and they will now meet Australia at the same venue in Saturday's final.
Du Plessis paced his innings superbly on another turning pitch, bringing up his half-century in 87 balls as the Proteas recovered from the early loss of their openers, before gradually increasing his scoring rate until a climax saw him hit three sixes in four balls after he had reached three figures.
The No. 3 batsman only scored his maiden one-day hundred last Wednesday against Australia, but followed it up with 126 against the same opposition in a losing cause on Tuesday before adding a third century on Thursday.
"It's certainly the best form he's shown at international level, but I've always known that he's capable of doing that so it's great to see him coming through at a crucial time leading up to a big World Cup," South Africa captain AB de Villiers said.
"It's great to have our No. 3 spot cemented down now by a guy in great form and with a great cricket brain.