One-day international, Colombo: Sri Lanka 308-8 (50 overs) beat South Africa 259 (48.1 overs) by 49 runs
Sri Lanka are in confident mood ahead of the Champions Trophy
Sri Lanka wrapped up a 5-0 clean sweep in their home one-day series against South Africa with a 49-run victory in the final game in Colombo.
Jacques Kallis hit 101 off 127 balls but the tourists only managed 259 in reply to Sri Lanka's total of 308-8.
Kallis was eventually caught off Upul Chandana as the leg-spinner returned figures of 5-61.
The defeat was South Africa's 10th in a row, equalling the worst run of results in their history.
Skipper Graeme Smith and coach Eric Simons now face the job of lifting the team's spirits ahead of the ICC Champions Trophy, which starts on 10 September.
Sri Lanka, by contrast, will go into the tournament full of confidence, having also recently won the Asia Cup.
They were again without skipper Marvan Atapattu, who missed the game because his daughter is ill, but Mahela Jayawardene proved an able deputy.
Smith put the home side in after winning the toss and Shaun Pollock bowled Avishka Gunawardene for nought with his third delivery.
But Jayasuriya and Jayantha steadied the innings with a stand of 125 and Sangakkara raised the tempo even further as he scored at better than a run per ball.
Seamer Charl Langeveldt dismissed Jayawardene (39), Sangakkara and Tillakaratne Dilshan in the space of four overs for figures of 3-31 but Sri Lanka still reached their highest total of the series.
South Africa made a poor start in reply with Herschelle Gibbs bowled off the inside edge by Nuwan Zoysa for six and Smith run out by Chandana for 25 in the 13th over as he attempted a second run to square leg.
Kallis and Jacques Rudolph kept them in the hunt by adding 114 for the third wicket before Rudolph became Chandana's first victim for 48.
Kallis' century was his 13th in a one-day international
Mark Boucher was next to go, stumped off Chandana for 24, sparking a slump which saw South Africa decline from 210-3 to 242-9.
Kallis skied an attempted sweep to wicket-keeper Sangakkara after reaching three figures off 123 balls and Chandana wrapped things up when last man Makhaya Ntini was caught by substitute Lasith Malinga.
South Africa: Graeme Smith (captain), Mark Boucher, Nicky Boje, Charl Langeveldt, Jean-Paul Duminy, Herschelle Gibbs, Jacques Kallis, Jacques Rudolph, Lance Klusener, Makhaya Ntini, Shaun Pollock
Sri Lanka: Mahela Jayawardene (captain), Sanath Jayasuriya, Kumar Sangakkara, Saman Jayantha, Tillakaratne Dilshan, Avishka Gunawardene, Farveez Maharoof, Nuwan Zoysa, Upul Chandana,
Kaushal Lokuarachchi, Rangana Herath.