England 158 (Pope 67, Jansen 5-35, Rabada 4-81) and 97 for 0 (Crawley 57*, Lees 32*) need 33 runs to beat South Africa 118 (Jansen 30, Robinson 5-49, Broad 4-41) and 169 (Elgar 36, Stokes 3-39, Broad 3-45)
England's Test summer started with Bazball and it was screaming out for Bazball to end it inside two days of the third Test as their bowlers literally swung the momentum back in the home side's favour and Zak Crawley's unbeaten fifty took them within 33 runs of victory over South Africa.
Under-fire Crawley, whose best score in 17 innings since his century on England's spring tour of West Indies had been 46 against India at Edgbaston in July, cruised to a 36-ball fifty and was 57 not out when the umpires took the players from the field for bad light at 6.40pm.
Ben Stokes, with mouth agape and hands on hips, and Joe Root's furrow-browed stare said it all from the changing room balcony but, with the officials having taken what many regarded as an overly cautious decision to stop play just before 6.30pm the previous evening under relatively bright skies, the die was cast.
South Africa could well have wondered what might have been, Dean Elgar's failure to review his lbw dismissal and Marco Jansen's dropped slip catch on the first ball of England's run chase cases in point.
Crawley could only look at the positives, having come under prolonged criticism of his form - and fit - under England's new regime, hallmarked by its ultra-positive approach, as he and fellow opener Alex Lees left the middle comfortably intact.
South Africa had owned the morning session, cleaning up England's last three first-innings wickets inside the first 16 balls of the day before Elgar and Sarel Erwee reeled in the hosts' slim first-innings advantage with relative ease.
But then a vintage display of swing bowling from Stuart Broad and James Anderson put England back in the ascendancy before a heroic display from captain Stokes, bowling his guts out in spite of a long-term knee injury that was clearly causing him discomfort, netted three crucial wickets.
Ollie Robinson, the architect of South Africa's first-innings collapse, chimed in with two wickets in the afternoon session to help contain the target as the tourists were bowled out for 169 in their second innings, the highest score of a match where ball has dominated bat - until Crawley and Lees arrived at the crease.
There were some risky moments, Lees surviving Jansen's blunder at fourth slip off the first ball of the innings, bowled by Kagiso Rabada, and then just making his ground to beat a direct hit from Ryan Rickelton as he and Crawley completed a single off Jansen.
Lees also narrowly managed to evade Keshav Maharaj's leap at mid-off for another single off Jansen, and by the close he had faced 61 balls for his 32 as he took a back seat to Crawley. The latter unfurled 10 fours during his knock, including back-to-back efforts off Rabada through cover and clipped off his toes in front of square leg to bring up his half-century.
When Lees drove Jansen through the covers on what turned out to be the last ball of the day, a sense of urgency mixed with inevitability.
Earlier, Elgar and Erwee put on 58 runs for the first wicket to turn England's 40-run lead into a 30-run deficit by lunch.
But, resuming after the break on 35, Elgar added just one more to his score before he was adjudged lbw by umpire Nitin Menon off Broad in the third over back. Elgar, the South Africa captain, walked off, apparently giving no thought to a review, which would have seen the decision overturned with replays showing the ball was missing leg stump by some way.
The wicket took Broad past Glenn McGrath to fifth on all-time Test wicket-takers' list with 564 and second among seamers behind Anderson, who moved his tally to 666 a short time later, setting Keegan Petersen beautifully with an over's worth of inswingers before dragging his length back slightly on a wide outswinger with the third ball of his next over which Petersen guided to Ollie Pope at fourth slip.
The veteran duo kept a tight lid on South Africa's scoring before Broad trapped Rickelton playing across an outswinger that straightened and crashed into the back pad low and in line with off stump.
Khaya Zondo and Wiaan Mulder batted 87 balls for their 25-run stand and England burned their last review thinking they had Zondo caught behind off Stokes but Snicko flatlined as the ball passed Zondo's bat. Robinson broke the union a short time later though, claiming his 50th wicket in just his 11th Test when Mulder edged one that shaped back into him onto his stumps. Robinson then removed Zondo with an inswinger that struck the front thigh in his next over.
Stokes could have added the wicket of Jansen, South Africa's top-scorer with 30 in the first innings, via an edge to Pope at fourth slip, had he not over-stepped. But Stokes made amends a short time later, uprooting Jansen's leg stump with a stunning inswinger that sent the visitors to tea seven men down. Stokes completed his over after the break with the wicket of Rabada, caught at third slip by Harry Brook for a second-ball duck.
Broad then bowled Maharaj and Anderson took a return catch off Kyle Verreynne in the next over toe end South Africa's second innings.
Stokes had made England's sole breakthrough before lunch, striking within three balls of bringing himself into the attack with a late outswinger which Erwee steered towards slip, where Root took a strong catch diving forward.
Earlier, Jansen had completed his maiden Test five-wicket haul with the wicket of Ben Foakes, well caught by Petersen at third slip to end England's first innings. That was after Rabada, who had been expensive in claiming 2 for 78 on Saturday, struck with the second ball of the day to remove Robinson then Jack Leach out for a duck chopping onto his middle stump.