The hosts were ultimately declared winners by 41 runs via the Duckworth Lewis System (DLS), thereby completely a 5-0 clean sweep of the ODI series.
South Africa were batting on 135-2 after bowling Sri Lanka out for 225 runs when the floodlights at the Newlands cricket ground malfunctioned.
No further play was possible after a two-hour delay leading to the officials calling off the match.
5th ODI result: South Africa have won the match by 41 runs via the DLS method after stadium light malfunction stopped play. Congratulations SA on the 5-0 series white wash, @AidzMarkram on his Player of the Match award & @QuinnyDeKock69 on Player of the series.#ProteaFire #SAvSL pic.twitter.com/SQ40wtNwrF— Cricket South Africa (@OfficialCSA) March 16, 2019
Earlier, South Africa pacers Kagiso Rabada and Anrich Nortje shared five wickets between themselves with Sri Lanka’s batsmen finding the going tough.
Kusal Mendis top-scored for the visitors with 56 but none of the other Sri Lanka batsmen were unable to push on despite getting good starts. Veteran leg-spinner Imran Tahir picked up two wickets in his home ground on what his final ODI appearance on South African soil.
In response, Sri Lanka skipper Lasith Malinga removed Quinton de Kock early but Aiden Markram and Faf du Plessis forged a 70-run stand for the second wicket to get the hosts back on track.
Markram was unbeaten on 67 while Rassie van der Dussen was batting on 28 when the match was ultimately called off.
The two teams will now square off in a three-match T20 series which begins at Cape Town on Monday.
Sri Lanka: 225 all out
Kusal Mendis: 56 (84)
Kagiso Rabada: 3-50
South Africa: 135-2 (28 overs)
Aiden Markram: 67 not out (75)
Know more about Sport360 Application