South Africa finished the opening day of the third Test on 1-38 after dismissing England for only 231 in their first innings.
South Africa are 193 runs behind England with Neil McKenzie unbeaten on 12 alongside nightwatchman Paul Harris with 10.
Graeme Smith was out for seven, caught by Andrew Strauss in the slips off a delivery from Andrew Flintoff.
Alastair Cook (76) and Ian Bell (50) were the top scorers for England after Michael Vaughan won the toss and elected to bat on a tame Edgbaston wicket.
Fast bowler Andre Nel took three for 47 in his first Test of the series, while Vaughan (0) and Paul Collingwood (4) again failed with the bat. Jacques Kallis took 3-31.
"We tried to let them be under pressure rather than us going at them," Nel said.
"It's been five months since I've played. I've got to enjoy it because it might be the last Test I play."
After a confident start, England lost Andrew Strauss (20) and Vaughan in successive deliveries to Nel.
Strauss made the mistake of moving too deep into his crease and treading on his stumps while attempting to flick the ball away in the 23rd over.
Nel then removed Vaughan when he played forward and sent a catch behind to Mark Boucher.
England lost Kevin Pietersen for four runs just before lunch, caught by Ashwell Prince at backward point off the bowling of Kallis.
Television replays suggested that Pietersen had missed the ball while trying to whip it through midwicket, but should have been given out leg before wicket as it crashed into his pad.
Collingwood, recalled to the side after being dropped for the second Test, took 16 balls to get off the mark before edging Kallis to Smith at slip.
Cook and Bell took their fourth-wicket partnership to 62 before Cook edged his former Essex teammate Nel to Kallis at second slip.
Bell was out just before tea when he edged behind to Boucher off Makhaya Ntini.
The innings finished with James Anderson (1) and Monty Panesar (1) being run out off successive deliveries.
Flintoff, playing his second test since returning from a lengthy injury layoff, was undefeated at the end on 36.
England lost the second Test at Headingley by 10 wickets and are 1-0 down in the four-match series.