Tillakaratne Dilshan hit his 17th one-day century as Sri Lanka scored 239-2 in 44 overs on Sunday to thrash South Africa by eight wickets in the fourth one-day international.
Sri Lanka took an insurmountable 3-1 lead in the five-match series.
Dilshan added 184 runs for the second-wicket with Kumar Sangakkara, out for 91. The pair came together after Sri Lanka lost Mahela Jayawardene for 12.
Dilshan faced 130 deliveries and hit 16 boundaries while Sangakkara smashed two sixes and eight boundaries during his 101-ball innings.
Earlier, Sri Lankan spinner Ajantha Mendis took 4-51 and fast bowler Lasith Malinga returned 3-52 to help restrict South Africa’s innings to 238 all out in 48.4 overs.
JP Duminy top-scored for the Proteas with 97 and Hashim Amla made 77.