A half-century from Faf du Plessis led South Africa to a series-clinching victory in the third one-dayer against Sri Lanka on Tuesday.
Chasing 267 to win, the home team was 179 for five after 34 overs when rain ended play.
According to Duckworth-Lewis calculations, South Africa were four runs ahead of Sri Lanka, giving them an unassailable 3-0 lead in the five-match series.
The 27-year-old Du Plessis lifted South Africa from 52 for three with 72 off 74 balls, the highest of his three half-centuries, before he became the second batsman to be run out in the innings as he failed to beat a throw by Angelo Mathews.
Captain AB de Villiers then took over with an aggressive 39 not out off 36 deliveries.
Earlier, fast bowler Lasith Malinga put Sri Lanka on top by clean bowling Graeme Smith for two and Colin Ingram for 13.
Sri Lanka totalled 266 for nine after winning the toss. Their top four all scored more than 30 but only opener Upul Tharanga (58) managed a half-century.
Nuwan Kulasekara provided some impetus in the closing overs with 40 off 38 balls.
The fourth match is in Kimberley on Friday.
Sri Lanka name Arnold, Kulasekara in W' Cup squad
Newlands Test: Kallis, De Villiers help SA dominate Lanka
Develop political solution of Tamil issue: India to Lanka
Amla, Duminy steer South Africa to victory
Ten high points on the cricket pitch in 2011