Cape Town: Jacques Kallis and Alviro Petersen hit centuries to drive South Africa into a commanding position on the first day of the third test against Sri Lanka at Newlands on Tuesday.
South Africa, trying to win a series at home for the first time in three years, had slipped to 56 for two after being sent in to bat, before Kallis and Petersen rescued them with a 205-run partnership. The hosts ended the day on 347 for three.
Kallis was unbeaten on 159 while Petersen, playing his first test since January last year, notched up his second test century before falling for 109.
Kallis has now completed a full set of centuries against every other test-playing nation, the second South African after current coach Gary Kirsten and 12th batsman overall to do so.
On a ground where he now averages 78.19, Kallis hammered 21 fours and a six in his 41st century in his 150th test, driving the ball with immense authority.
Petersen gazed with admiration from the other end at Kallis's imperious innings before notching up a brilliant century of his own, hitting 13 fours and a six.
He used his feet beautifully and drove with sweet timing, scoring heavily on the leg-side. But Petersen eventually fell in the ninth over after tea when he was caught by a diving Tillakaratne Dilshan at short-cover after driving loosely at a slower ball from left-arm seamer Chanaka Welegedara.
AB de Villiers then came in and played some handsome strokes against a toothless attack as he breezed to 45 not out by the close.
South Africa were left reeling on 56 for two after seamer Dhammika Prasad struck twice in the first hour, keeping to a tight line and removing both Graeme Smith and Hashim Amla for 16, before Sri Lanka's bowling effort descended into near-chaos.
Prasad, brought into the Sri Lanka side for the first time in the series to replace the injured Dilhara Fernando, got a wicket with his first ball as the left-handed Smith chopped a delivery that was angling across him back into his stumps.
Smith had looked in very good form, hitting three fours off Welegedara in the previous over from the Wynberg End. Amla then played across a straight delivery from Prasad to be trapped lbw.
South Africa decided to recall Petersen in a shuffling of their batting line-up, with Jacques Rudolph moving down to number six and Ashwell Prince being dropped. Pace bowler Vernon Philander also returned after injury, replacing Marchant de Lange.
Sri Lanka also brought in opening batsman Lahiru Thirimanne in place of Tharanga Paranavitana.
Sri Lanka won last week's second test in Durban by 208 runs to level the series at 1-1.