Cape Town: Jacques Kallis celebrated his 150th Test match with one of the most complete all-round performances of his career as he inspired South Africa to a ten-wicket victory over Sri Lanka yesterday and a first home series win in three years.

Kallis had marked his milestone match at his home ground at Newlands with a career-best 224 in South Africa's rampant first-innings batting effort in the third Test.

He then picked up 3-35 with the ball in Sri Lanka's second innings on the fourth day — and completed a South African record six catches in the match — to be the driving force behind the Proteas' dominant win.

South Africa overcame a heavy 208-run loss in the second Test, its first-ever Test defeat on home soil to the Sri Lankans, to seal a first home series success since beating Bangladesh in 2008. They ended a run of four home series without a win, where South Africa failed to close out strong positions in the last three.

In Cape Town, South Africa finally found the killer instinct to bowl Sri Lanka out for 239 and then 342 just before tea yesterday after it had followed on in response to South Africa's daunting and Kallis-inspired 580-4 declared.

Needing just two runs to clinch the match and a 2-1 series victory with over a day to spare, opener Alviro Petersen drove the first ball of South Africa's second innings, a no-ball from Dhammika Prasad, back through mid-on and to the boundary.

A fighting 115 not out from Thilan Samaraweera had earlier delayed South Africa's march to victory in a gritty 142-run partnership with Angelo Mathews (63).