Ben Stokes was the hero once again as England took five wickets in the final session to win a thrilling second Test against South Africa in Cape Town that levelled the series at 1-1.
The tourists won by 189 runs, claiming the 10th wicket in the Proteas' second innings with just over half an hour left to play on day five, as Stokes, who had previously shone with the bat, took the last three wickets in dramatic fashion.
With 26 overs remaining, it looked like the hosts would bat out the day for a draw with Quinton de Kock and Rassie van der Dussen well set and their team on 237-5
But De Kock fell for 50 after a poor shot off Joe Denly before Van der Dussen's 194-minute, 140-ball innings for just 17 ended tamely when he was caught off Stuart Broad down the legside.
Debutant Pieter Malan made 84 after surviving for 288 deliveries, but Stokes helped England prevail and gave coach Chris Silverwood his first Test win in four attempts despite largely being without the injured James Anderson after lunch.
There are two more Tests to come in the four-match series, with the next contest in Port Elizabeth starting on January 16.
Starting the day on 126-2, Keshav Maharaj soon fell for two in the third over, Anderson dismissing him plumb lbw, with the nightwatchman not even waiting for the umpire's finger.
That brought Proteas captain Faf du Plessis to the crease for what the hosts hoped would be a match-saving partnership with Malan.
The skipper, so often his side's final-innings hero, moved on to 19 but got out in poor fashion, giving his wicket away poorly when he swept straight to Denly at square leg off Dom Bess.
That meant South Africa were four down at lunch and the crucial wicket of Malan early in the second session, Sam Curran forcing an edge to second slip where Stokes was waiting gratefully, appeared to have the tourists in control.
The hosts desperately needed a partnership and it arrived through De Kock and Van der Dussen, who managed well as the 32 overs after lunch went for just 55 runs and one wicket.
But just as it looked like South Africa were comfortable, De Kock, who brought up his fifty with a four off Curran, could not believe what he had done when he sent a long hop from Denly straight to Zak Crawley.
England then saw a field change pay immediate dividends, Anderson catching Van der Dussen at leg gully before Stokes (3-35) found the edge of Dwaine Pretorius with captain Joe Root taking a smart catch at slip.
Anrich Nortje went for a golden duck next ball, Crawley keeping his cool in the slips to make the catch at the second attempt while on the ground.
And Vernon Philander was the last man to fall as he fended Stokes to gully, ending the retiring star's attempt to see South Africa through to the close at his home stadium.