England, who won the toss and chose to bat on a pitch giving early assistance to the seamers, were 263 for four when bad light ended lay 4.2 overs early.
An out-of-form Michael Vaughan was nine not out with nightwatchman Matthew Hoggard at the other end after the touring side lost three wickets for 36 in the final session.
Strauss had survived an early grilling from Shaun Pollock to score a chanceless 147, his fifth century in 11 test matches. Favouring the cut and off drive, he batted for almost six hours, faced 250 balls and hit 23 fours and a six.
"I was very disappointed to get out as I did but we are in a pretty reasonable position," he said. "It was pretty hard against the new ball. We just had to knuckle down and get over that spell. It got easier."
The five-match series is tied at 1-1.
England had stamped their authority on the day's play during a second-wicket stand of 182 between Strauss and Robert Key (83).
South Africa might have dismissed Key for 39 with the total 142 for one, but left-arm spinner Nicky Boje failed to hold a difficult return catch.
Key's
Marcus Trescothick and Strauss had given England a solid base although they faced an early grilling from the excellent Shaun Pollock as the ball swung and seamed.
The openers, despite being beaten repeatedly, saw off the new ball, shared by Pollock and Makhaya Ntini, and seemed set for a big partnership.
But two balls after the drinks interval fast bowler Dale Steyn had Trescothick caught behind for 16 by wicketkeeper Mark Boucher off the thinnest of outside edges.
Trescothick, never looking comfortable, grafted hard while facing 47 balls.
Strauss and Key took England to lunch on 77 for one, and shared 110 runs from 30 overs in the second session as the pitch eased.
The stand was ended in the 10th over after tea, when Key drove hard at a ball from Ntini and was caught by Graeme Smith at first slip. Key, in for the injured Mark Butcher, was at the crease for three-and-a-half hours, hitting 11 fours and a six.
Strauss was dismissed in the third over before the close when he drove at a wide delivery from Pollock and was caught by Jacques Kallis at second slip.
Three balls before the end Graham Thorpe fended a short ball from Ntini to Boeta Dippenaar at third slip to be dismissed without scoring.