Cape Town: Jacques Kallis and Alviro Petersen hit centuries as South Africa dominated the first day of the third and final Test against Sri Lanka at Newlands on Tuesday. (Agencies)
South Africa were 347 for three at the close after being sent in to bat.
Kallis, playing in his 150th Test match, was on 159 not out. He and Petersen (109) put on 205 for the third wicket, a record for South Africa against Sri Lanka.
It was a triumphant return to his home town for Kallis after making the first 'pair' of his career during South Africa's defeat in the second Test in Durban. He was in imperious form as he reached his half-century off 37 balls and his century off 114 deliveries with 17 fours.
His scoring rate slowed later in the day and by the close he had faced 215 balls and hit 21 fours and a six.
It was Kallis' 41st Test century, his ninth at Newlands - and his first against Sri Lanka. He joined Gary Kirsten, the current coach, as the only South Africans to hit centuries against all nine possible Test opponents.
Petersen scored a century on his debut against India in Kolkata in 2009/10 but made only three half-centuries in eight subsequent appearances and was replaced as captain Graeme Smith's opening partner by Jacques Rudolph at the start of this season.
Rudolph was shifted to number six in the batting order to make way for Petersen, who was rewarded for strong domestic form.
Petersen took full advantage of his recall with an authoritative innings which included 13 fours and a six.
He saw two partners leave early, with both Smith and Hashim Amla falling to fast bowler Dhammika Prasad, who replaced the injured Dilhara Fernando.
There was an anxious wait for Petersen, who was stuck on 99 during the tea break. But he went to his century in the first over after the resumption, off 165 balls, before playing a loose drive to be caught by Sri Lankan captain Tillekeratne Dilshan at cover off the left-arm opening bowler Chanaka Welegedara.
With the series tied at 1-1, Dilshan gambled by sending South Africa in. Hopes that a green-tinged pitch would help his fast bowlers were soon shown to be mistaken, while early morning cloud soon cleared on what became an ideal day for batting.
After their early successes, the Sri Lankans seldom looked likely to take a wicket and they squandered their allocation of reviews when umpire Richard Kettleborough twice gave Kallis not out when Chanaka Welegedera appealed for leg before wicket decisions.
On both occasions the umpire was shown to be right.
Prasad struck with his first delivery of the match when Smith attempted a forcing shot off the back foot and edged the ball into his stumps.
He had a second success when Amla played across the line and was leg before wicket. But Prasad proved expensive and finished the day with figures of two for 85 from 14 overs.
Both teams made two changes. For Sri Lanka, Prasad replaced Fernando, while Lahiru Thirimanne was selected as an opening batsman ahead of Tharanga Paranavitana.
Rudolph's move to number six was at the expense of Ashwell Prince, while opening bowler Vernon Philander replaced Marchant de Lange after recovering from the knee injury which kept him out of the second Test.
Kallis became the sixth player in the world to appear in 150 Test matches.
Cape Town: Jacques Kallis and Alviro Petersen hit centuries as South Africa dominated the first day of the third and final Test against Sri Lanka at Newlands on Tuesday.