Cook hundred puts England on top
Cook hit a measured 114 not out from 283 balls, with a six and 11 fours, to put England in charge. Jonathan Trott made 71 from 162 balls with nine fours.
"It was very satisfying," Cook said. "I think it's been a year since my last test hundred and it's been quite frustrating. I'd have taken 90 if offered, but to get through the nineties was a very special feeling."
Morne Morkel trapped England captain Andrew Strauss lbw for 0 on the fourth ball of the day. He was the best bowler on a lifeless wicket, taking 2-44 on a frustrating day for South Africa.
"I think we played well," South Africa bowling coach Allan Donald said. "We all knew that the toss, I wouldn't say it was crucial, but it was obviously a good toss to win. We got off to a great start with the Strauss wicket. At times I think we could have been a little more aggressive in certain situations, but we never let England run away."
After winning the toss and choosing to bat, England made the worst possible start when Strauss - who was initially given not out by umpire Steve Davis - was shown to be plumb lbw to Morkel upon referral.
However, Cook and Trott steered England to 70-1 at lunch and made a confident start to the afternoon session, with Cook producing two glorious shots in the 28th over to hit fours off successive balls from Steyn - the first a cut through point and the second a straight drive.
"In the first session it was certainly nibbling around," Cook said. "But it did it quite slowly, so we could grind our way through it. We've had a really good day but we've had to work for it."
Batting conditions improved significantly, and although South Africa's bowlers successfully stemmed the flow of boundaries and slowed the run rate to less than three an over, they seldom looked like taking a wicket.
The duo crept to 158-1 at tea and their partnership finally came to an end 20 minutes into the evening session, when Morkel had Trott caught behind.
Although Kevin Pietersen looked vulnerable early on, South Africa's bowlers continued to struggle on a lifeless track.
Cook brought up his century, from 222 balls, with a single of Imran Tahir in the 71st over, before Pietersen gifted South Africa his wicket when he was caught behind off a rank long hop from Jacques Kallis for 42 in the 79th.
The first three overs with the new ball were maidens but Ian Bell got off the mark with a stylish cover drive to Dale Steyn for four and was unbeaten on 10 at stumps.
"The wicket of Pietersen was a huge bonus for us at the stage, with the new ball just around the corner," Donald said. "I think throughout the day we bowled better and better (but) we've got to make inroads tomorrow early."
election 2014: latest
Sachin Tendulkar announced his retirement from international cricket after playing his 200th Test in the home series against the West Indies next month.
Date 09-10-13, Duration 0:40, Views 22539