(CNN) -- Jacques Kallis wore down a frustrated England bowling attack with his 32nd Test century to lead South Africa to 262 for four wickets after the opening day of their five-match series at Centurion on Wednesday.
Kallis was unbeaten on 112 with JP Duminy on 38 not out in an unbroken stand of 103 for the fifth wicket after England had enjoyed the better of the first two sessions.
Visiting captain Andrew Strauss won the toss and put South Africa into bat on a slow wicket and his moved looked to have paid off as off-spinner Graeme Swann with two wickets and Stuart Broad and Graham Onions with a wicket apiece reduced South Africa to 159 for four wickets.
But Kallis, batting with a rib injury which will prevent him bowling in the first Test, was largely untroubled and gave just a single half-chance as he mis-timed a hook off Broad.
He also survived an appeal to the television umpire for a leg before wicket to James Anderson which was turned down.
Duminy also played solidly in a supporting role and they will look to put South Africa in a strong position on the second day with England set to take the second new ball.
Kallis showed his intent shortly after coming to the wicket as he advanced down the track to hit Swann for a six and a boundary in the same over.
He reached his ton off 177 balls with 13 fours and the six.
England made a good start to the day when South African captain Graeme Smith was caught behind by wicketkeeper Matt Prior off Broad without scoring, misjudging a glance down the leg side.
Ashwell Prince and Hashim Amla put on 50 for the second wicket before Amla went for 19, caught by Paul Collingwood at second slip off Onions.
Prince, who made a successful reference to the television umpire after being given out lbw to Onions when he had 19, made 45 before he was caught by Collingwood at slip off Swann's second ball of the match.
AB de Villiers joined Kallis in a stand of 66 but he was caught at short leg off Swann after surviving a caught behind appeal in the previous over.
Onions went off with a calf strain in the afternoon, leaving England short of specialist bowlers while the home side were hit with a blow before the start as star paceman Dale Steyn was ruled unfit and was replaced by new cap Friedel de Wet.