Quinton de Kock`s swashbuckling century inspired South Africa to beat Sri Lanka by 71 runs under the Duckworth-Lewis system at Kingsmead on Sunday to secure a winning 3-0 lead in their five-match one-day international series.
After South Africa had been put into bat, De Kock smashed 121 runs off 108 balls at the top of the order-- his 14th ODI hundred -- as they went on to score 331-5 off their 50 overs.
Sri Lanka, set a revised target of 193 after a rain delay, fell a long way short, managing to score only 121-5 off 24 overs in reply.
Sri Lanka had already been falling behind the required over rate at 75-2 off 16 overs when a rainstorm took the players off for a two-hour break, after which the visitors were set a Herculean target of 118 runs off just eight overs to win.
Kusal Mendis was caught and bowled by Imran Tahir for 41 just as Sri Lanka looked set to take on the challenge but despite the best efforts of Thisara Perera, who swung at every ball, the tourists were always fighting a losing cause.
De Kock had earlier announced his intent with a four off the first ball of the game and kept up the attack before eventually getting to three figures off 89 balls, having fallen just short in the last ODI in Pretoria last Wednesday when he scored 94.
Rassie van der Dussen added 50 and a cameo from Andile Phehlukwayo, who hit 38 off 15 at the end of the innings, ensured South Africa went past 300 as they continued their World Cup preparations with aplomb.
Sri Lanka lost key batsman Kusal Perera early on in the game when he looked to have hurt his hamstring in the field and was taken to hospital for scans.
Officials said he would not have been able to bat had he been needed but it is unsure how serious the injury is.
South Africa and Sri Lanka will play the fourth match of the series in Port Elizabeth on Wednesday.