Aiden Markram scored 67 not out as South Africa completed a 5-0 sweep over Sri Lanka by winning a fifth ODI shortened by a floodlight failure.
Markram was dropped on two and 13 and had his bat snapped in half on 35 as the Proteas reached 135-2 from 28 overs in pursuit of 226 before a light gave out at Newlands and ended play prematurely - South Africa triumphing by 41 runs on DLS having coasted past the par score of 94.
The hosts bowled out Sri Lanka for 225 in 49.3 overs, with Kagiso Rabada taking three wickets and Imran Tahir, in his final ODI in South Africa, and Anrich Nortje picking up two scalps each.
Quinton de Kock (6) then failed for the first time in the series having struck 81, 94, 121 and 51 across the first four matches, but Markram completed his second ODI fifty from 58 balls before the floodlight issue.
Sri Lanka had elected to bowl after winning the toss but soon found themselves 14-2 with openers Avishka Fernando (9) and Upul Tharanga (2) out to Lungi Ngidi (1-16) and Rabada withn the first five overs.
Kusal Mendis (56) shared stands of 49 and 62 with Oshada Fernando (22) and Angelo Perera (31) respectively only for Sri Lanka to collapse from 125-3 once Oshada edged a Tahir leg-break behind, with Mendis run out by Ngidi following a mix-up with Priyamal Perera.
The tourists slipped to 167-7 before a 61-run partnership between Isuru Udana (32) and Priyamal (33) lifted the side past 200 - Udana backing up his 78 in the previous match in Port Elizabeth.
Lasith Malinga then had De Kock caught at deep square leg but Sri Lanka failed to remove Markram, with Udana grassing a caught-and-bowled chance and then seeing Oshada spill at cover off his bowling.
Markram, whose bat was split as he played a yorker from Thisara Perera, went on share fifty stands with skipper Faf du Plessis (24) and Rassie van der Dussen (28no) - Sri Lanka's only other scalp coming when Du Plessis chased a wide delivery from Thisara and edged behind.
Watch the first Twenty20 international between South Africa and Sri Lanka, in Cape Town, live on Sky Sports Cricket from 3.55pm on Tuesday.