(CNN) -- England had to dig deep on day two of the third Test at Newlands, Cape Town, to stay on course to protect their 1-0 series lead over South Africa.
Alastair Cook (65), Matt Prior (52no) and Ian Bell all displayed admirable determination to keep the first-innings deficit to manageable levels as England reached stumps on 241 for seven in reply to 291 all out.
Kevin Pietersen's departure for a second-ball duck made his the seventh wicket to fall in a crazy first session which started with England hustling out the home tail.
On a slow pitch of occasional uneven bounce, the tourists soon knew they faced a long haul to approach parity.
Cook and Bell dug in for a 60-run fifth-wicket stand but neither was able to consolidate sufficiently to get anywhere near three figures, and it therefore fell to Prior to bat through almost the entire evening session as England eked out a tenable position.
Cook left alone the majority of the 136 deliveries he faced, drawn into a shot only when defence was necessary or attack feasible.
It needed the introduction of Paul Harris to tempt him into a relative rush of runs -- including three slog-sweeps for four in two overs.
Bell was still more watchful, needing 15 deliveries to get off the mark with a square-driven four off Dale Steyn and not adding to that in 10 overs before doubling his score with another boundary past cover off Jacques Kallis.
The South Africa all-rounder responded with a barrage of short balls for Bell, whose no-pull policy meant he was restricted to fend-offs.
The England number six appeared to have won the battle, until the return of Kallis had him cutting an undeserving ball aerially to point to fall two runs short of a deserved 50 -- and leave England still 117 runs adrift, without a remaining specialist batsman.
After James Anderson (five for 63) helped the tourists blow away South Africa's last four wickets in only 20 minutes, England almost immediately lost Andrew Strauss but then appeared to be re-establishing some calm -- until Jonathan Trott and Pietersen went in the same Steyn over.