South Africa eased to a 63-run win over Zimbabwe on Thursday and will play Australia in the one-day international tri-series final at Harare Sports Club.
Faf du Plessis hit his third century in four games to take South Africa to 271-6 batting first and just about guarantee it a place in Saturday's decider, with Zimbabwe needing to overhaul that score in just 25.2 overs to move ahead of the South Africans on run rate.
The Zimbabweans ultimately finished well short of any kind of victory despite Brendan Taylor's return to form, with his 79 with five fours and two sixes propping up the chase. The next highest score was 29 by opener Sikandar Raza as the home team's batting was fragile again.
In the end, South Africa claimed a bonus point in the comfortable win, finished top of the standings, and will play Australia for the third time to decide the tournament. The teams have one win each in their round-robin meetings.
South Africa was so comfortable that it gave Rilee Rossouw a chance to bowl for the first time in internationals, and he responded by getting Zimbabwe captain Elton Chigumbura out. South Africa skipper AB de Villiers also bowled for only the second time in an ODI, and the first time since 2007, as the Proteas experimented ahead of the game against Australia this weekend.
The one thing the South Africans are certain of, though, is Du Plessis' rich run of form.
After waiting for more than 50 games to get his first ODI century, Du Plessis made his second straight and third of the series with a masterful 121 to lift South Africa from a wobbling start at 26-2. He found support from JP Duminy, who made 51 in their stand of 103 for the fifth wicket.
Du Plessis was patient at first but finished with five fours and four sixes. He entered in the first over after Quinton de Kock fell for just 2. Hashim Amla was then out for 14 to a sliding catch by Chigumbura at mid-off as South Africa quickly lost both its openers.
Rossouw made his first international runs with a flowing cover drive for four and looked good for his 36 before he was bowled by Sean Williams, one of the four spinners Zimbabwe relied on. De Villiers was run out when a powerful shot from Du Plessis deflected off bowler John Nyumbu and hit the stumps at the non-striker's end, catching De Villiers out.
Du Plessis and Duminy rebuilt the innings, and Du Plessis reached 100 with a clip down the leg side for four. The next ball, he went down on one knee to belt a flat six over long-off, one of his four maximums. He batted for 48 overs before top-edging a catch. His four scores in the series are 106, 15, 126 and 121 after having never made a 50-over century coming in to the tri-series.
Seamer Neville Madziva was Zimbabwe's best bowler with 2-53, but the four-prong spin attack didn't restrict South Africa as much as Zimbabwe wanted and its batsmen again struggled.