A busy 45 from Jonny Bairstow ensured the third Test between England and South Africa continued to hang in the balance at lunch on day three in Johannesburg.
The tourists lost centurion Joe Root in the opening minutes but still reached 323, and a slender first-innings lead of 10, thanks to Bairstow's fluent innings alongside the lower order.
That left five tricky overs for Proteas openers Stiaan van Zyl and Dean Elgar but they reached 16 without loss to nudge their side back in front in a captivatingly close contest.
South Africa claimed the last five England wickets for 85 runs in two entertaining hours at the Wanderers, Kagiso Rabada finishing with career-best figures of five for 78.
Root had spoken about the need to turn his superb century into a match-winning effort but instead added just four runs to his overnight 106.
He had played and missed four times early in his innings on Friday but this time he was not so lucky.
The Yorkshireman aimed a booming drive at Rabada but only succeeded in getting a thin inside edge that was well caught by wicketkeeper Dane Vilas.
Root reviewed, more in hope than expectation, and was sent on his way.
Moeen Ali should probably have followed for a golden duck when he edged Morne Morkel towards third slip, but the position was curiously unfilled and the ball squirmed away for two runs.
With Bairstow progressing steadily, Hardus Viljoen versus Moeen became the must watch contest.
Having taken eight runs off the first four deliveries of the burly paceman's first over of the day, Moeen then saw his bat snapped in two.
If he had any concerns over the quality of his new blade they disappeared when Viljoen dropped his next ball short and Moeen slashed it for four past gully.
He was soon on his way though, Vilas producing an even better version of the catch that dismissed Root.
Chris Morris was the bowler, taking a thick inside edge, but Vilas needed to redistribute his weight and cling on one-handed to complete the job.
At 279 for seven a South Africa lead looked favourite, but some ill-disciplined short bowling helped Bairstow and Stuart Broad put on 30.
Rabada was first to learn the lesson, delivering a rare yorker and pegging back Broad's off stump.
England were still four shot of parity and added just two more before Morkel bounced out Steven Finn via a flick off the glove.
Bairstow ensured they would step in front, top-edging Rabada for four.
He has been in fine form with the bat on this tour but with number 11 James Anderson at the other end, holed out in pursuit of quick runs.
Van Zyl and Elgar survived to the interval, though the latter did suffer a stinging blow to the shoulder off Anderson.