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.
Morne Morkel, who trapped England captain Andrew Strauss lbw for 0 on the fourth ball of the day, was the best bowler on a lifeless wicket, taking 2-44 on a frustrating day for South Africa.
Brief score:
England (1st inns): 267-3 (Alastair Cook 114 not out, Jonathan Trott 71; Morne Morkel 2-44, Jacques Kallis 1-34).