Kevin Pietersen hit a spectacular century to break a stranglehold by the South African bowlers and raise England's hopes on the third day of the second Test at Headingley on Saturday.
Pietersen launched a savage assault after tea, hitting 149 not out as England reached 351 for five at the close, 68 behind South Africa's first innings total of 419.
South Africa suffered a further blow shortly before the close when captain Graeme Smith had to be helped from the field after injuring his left knee in chasing a ball to the boundary.
Until Pietersen cut loose, South Africa had been ahead in a battle of attrition as England struggled to 173 for four at less than three runs an over.
Alastair Cook (24), Andrew Strauss (37) and Jonathan Trott (35) all fell to disciplined bowling after lengthy but not particularly productive stays at the crease.
South Africa struck what seemed a crucial blow shortly before the tea interval when Ian Bell was caught at first slip off Jacques Kallis for 11, leaving Pietersen to rebuild the innings together with new cap James Taylor, who scored his first runs in Test cricket when he drove leg-spinner Imran Tahir past mid-off for four in the final over before tea.
The match changed dramatically after the break. South Africa brought back fast bowlers Dale Steyn and Morne Morkel to put pressure on the diminutive Taylor but it was Pietersen who took charge, slamming 26 runs off 11 balls in a thrilling passage of play.
In a continuation of the duel between the two players in the first Test at the Oval, Morkel sent down a series of bouncers, bowling from around the wicket and challenging Pietersen to take on two fielders on the legside boundary.
Pietersen was dropped at short leg by Hashim Amla off Morkel on 52 but then thrashed the next two balls to the midwicket boundary.
With Pietersen in such dominant mood, Taylor was able to feel his way into Test cricket in a supporting role and batted soundly as he made 34 in a fifth wicket partnership of 147 before being bowled by Morkel.
Pietersen reached a relatively conventional fifty off 90 balls with nine fours -- although it was already by far the most aggressive innings played by an England batsman -- then raced to his century off another 52 deliveries with eight more boundaries.
When he was on 85 he became the eighth English batsman to score 7000 Test runs.
His 21st Test century -- his third against South Africa -- came in the first over with the second new ball.
After a brief period of consolidation he launched another burst of scoring, hitting 22 off 11 balls, including a straight drive which nearly decapitated Steyn and a dismissive swat to midwicket in Steyn's next over followed by a straight six off the next ball.
Strauss and Cook had to combat some hostile bowling in a morning's play curtailed by rain, which stopped play for an hour and a half.
Philander made the breakthrough when Cook played around a straight delivery and was given out leg before wicket by umpire Steve Davis. Cook unsuccessfully sought a review which showed the ball was hitting his middle stump.
Strauss was caught behind off Steyn after a two-and-half hour stay when he pushed at a ball from the fast bowler to edge a straightforward catch.
Trott batted for two hours before losing patience and flashing at Steyn to be caught at first slip.
Pietersen showed attacking intent from the start of his innings but when Bell was out to a loose shot South Africa were in control and must have harboured hopes of clinching the three-match series after winning the first Test by an innings and 12 runs.
Two hours later the game had changed dramatically.