Quinton de Kock ended a streak of near misses with a scintillating century, setting up a series-clinching win for South Africa in the third one-day international against Sri Lanka at Kingsmead on Sunday.
De Kock hit 121 in a South African total of 331 for five, highlighting what captain Faf du Plessis described as a "brilliant" team batting effort.
Sri Lanka, chasing a revised target of 193 in 24 overs after a lengthy rain delay, made 121 for five.
South Africa's 71-run win, according to the Duckworth/Lewis/Stern formula, gave them a winning 3-0 lead in the five-match series.
Sri Lanka were 75 for two after 16 overs at the rain break and faced a near-impossible task of scoring another 118 off 48 balls when play resumed, especially with Kusal Perera out of action with a leg injury.
Perera, star of Sri Lanka's upset win in the first Test at the same venue last month, left the field in the seventh over of the match after hurting his left leg while fielding.
"Rain-affected games are not nice but the way we bowled up front, getting wickets, it was going to be tough for them in a full game," said Du Plessis.
Sri Lanka captain Lasith Malinga said poor bowling and fielding had enabled South Africa to score 40 or 50 more runs than they should have.
"We had a good start (with the bat) but after the rain it was very hard."
The left-handed De Kock had made scores between 80 and 94 in his five previous matches for South Africa, including two Test matches, and his reaction on reaching his 14th one-day international century, off 89 balls, revealed more relief than ecstasy.
"To finally convert was pleasing," he said after being named man of the match.
As in the first two one-day internationals, De Kock made batting look easy as he hit 16 fours and two sixes before being dismissed in the 31st over.
He and the in-form captain Du Plessis put on 97 off 66 balls with Du Plessis making 36 off 27 balls.
The rest of the South African batsmen all made contributions to what Du Plessis said was an ideal one-day innings -– "solid in the middle and setting it up for the guys at the back end".
South Africa scored 99 runs in the last ten overs.
Sri Lanka gave a first one-day international cap to their ambidextrous former Under-19 captain, Kamindu Mendis.
Bowling slow left-arm around the wicket to right-handers and right-arm around the wicket to left-handed batsmen, he was Sri Lanka's most economical bowler.
Mendis, 20, maintained impressive control and took one for 45 in an unbroken ten-over spell.
"He is a very good player for the future," said Malinga.
South African opening bowlers Kagiso Rabada and Lungi Ngidi both struck early in the Sri Lanka innings before a promising stand between Oshada Fernando and Kusal Mendis was interrupted by the rain.
Mendis hit two sixes in an over off left-arm spinner Tabraiz Shamsi but perished trying another big hit against leg-spinner Imran Tahir as Sri Lanka went down in a flurry of strokes and wickets.