Matthew Hoggard captured seven wickets as England secured a superb victory by 77 runs with eight overs remaining.
Hoggard removed last man Dale Steyn with light fading to seal his 12th wicket of the match and put England 2-1 up with one match of the series to go.
Ashley Giles ousted Herschelle Gibbs two short of a second ton in the match, but Graeme Smith, still troubled by concussion, held on for over two hours.
Marcus Trescothick's 180 saw England declare on 332-9 - a lead of 324.
Day five action (all times GMT):
1551: It's all over as Steyn edges Hoggard to Jones and gives the seamer a seventh wicket and England the victory by 77 runs.
South Africa: 247 (Steyn 8)
1550: Flintoff sends in a near-yorker that Smith can only hit to mid-off so Steyn will be on strike with nine overs left.
1549: Smith declines the opportunity of a single from the fourth ball.
1546: The light is still holding up but there are now 60 balls remaining in the match, although Flintoff over-steps with the first to Smith.
1545: A yorker is well directed but Steyn keeps it out and there is one ball remaining in the over, and that passes down the legside.
1544: A typical Hoggard delivery seams away past the edge but misses the off-stump by a whisker.
1543: The second ball rears up off a length but Steyn plays it well off the glove and there is no chance of a catch.
1542: Smith finds Anderson at point and Steyn will have to face Hoggard.
1541: A full toss is driven through mid-off for four by Smith.
1540: Flintoff is unable to deliver the ball as the tension mounts, England moving a man in at short-leg to try and prevent the bye being taken again.
1538: Smith is beaten outside the off-stump by Flintoff from the fourth ball of the over.
1536: He fishes at a wide ball and there is a noise as Jones takes the ball, but it is not willow on leather and Steyn survives.
1535: Steyn has two balls to face from Harmison and the first is a low full toss that he just manages to dig out.
1533: Smith backs away from a Harmison no-ball and drives through the covers for four.
1531: Somehow another bye is taken when as the ball is on its way through to Jones and gets Smith the strike for the next over.
1530: Agony for England again as Anderson fails to cling on at point from a savage square drive from Smith.
1529: Smith runs a bye to regain the strike after a short ball from Flintoff goes through high to keeper Jones.
1527: Steyn elicits a gasp from the entire stadium as he edges just over the slip cordon for four.
1524: There are still shards of sunlight as England attempt to get Smith off strike to expose new batsman Steyn. Smith drives through the covers to complete a deserved fifty, confounding those who advised him not to bat after his concussion on Saturday.
1519: They need worry no more as Flintoff jags one back into Ntini and umpire Aleem Dar gives a surprising lbw decision to a delivery probably sliding down leg.
South Africa 216-9 (Ntini 13)
1517: Flintoff replaces Giles, with England beginning to worry a little.
1512: Harmison returns to the attack and Smith plays and misses before cutting four.
1511: Ntini clubs Giles down the ground to make the unlikely equation 113 needed from 17 overs.
1506: Flintoff expresses his frustration as Smith pulls four through midwicket, but the runs count for little now.
1502: Ntini carves a ludicruos boundary off Giles over a packed off-side field and almost edges the following delivery behind as he tries to repeat the shot.
1455: New batsman Ntini gets off the mark slogging Flintoff through the vacant midwicket area for four. Smith smashes boudaries either side of the wicket. The rest of England's squad are scattered round the boundary, outside the rope, to help return the ball more quickly. Smith gets a single to retain strike.
1442: Pollock, having been hit on the head by a Flintoff bouncer, then dropped by Vaughan at silly gully, edges a Flintoff outswinger to be the eighth man dismissed.
South Africa 172-8 (Pollock 4).
1439: Smith pulls Hoggard for four.
1437: Hoggard returns to the attack to bowl at Pollock and the batsman almost gets an immediate inside edge onto his stumps.
1429: Giles finally removes Gibbs courtesy of an lbw decision from umpire Dar, despite the batsman having gone a long way down the pitch with his front foot.
South Africa 163-7 (Gibbs 98)
1427: Smith looks untroubled facing Giles.
1423: Anderson loses his line to let Gibbs swing Anderson down the leg-side for four.
1421: Gibbs moves to 88 by sweeping Giles for four.
1417: Anderson is back into the attack but cannot get the much-needed breakthrough.
1413: Smith knocks the new bowler Giles through the on-side for four.
1410: Gibbs hits his 16th four by driving Harmison through the off-side.
1408: Harmison's lethal bouncer at Smith is fended off his face uncomfortably by the South African skipper.
1400: Smith flails Harmison over the slips for four.
1354: Smith gingerly gets off the mark with two runs off Hoggard.
1351: Gibbs drives Harmison through the covers for four.
1346: Unbelievably, Hoggard has his sixth wicket out of six in this innings, Boje driving a catch straight back for him to catch himself.
South Africa 118-6 (Boje 18)
1343: Boje drives Hoggard down the ground for four.
1340: Vaughan drops the simplest of chances at leg-gully offered by Boje off Harmison. Hoggard gifts Gibbs another boundary by letting a ball go through his legs at fine-leg.
1333: Hoggard starts with a couple of balls swinging into Boje's stumps. Gibbs leg-glances the bowler for yet another boundary.
1308: Boje drives Hoggard high through the fourth slip area - the only position where there is a gap on the off-side behind square.
1302: Gibbs moves to 65 with four more runs off Flintoff.
1258: England are now five wickets away from a sensational victory as Hoggard claims his 10th wicket of the match, Boucher offering an edge to the wicket-keeper.
South Africa 86-5 (Boucher 0)
1256: Hoggard, hunting his 10th wicket in the match, almost has Boucher giving a catch to short leg.
1248: Hoggard strikes again! Giles takes a catch at gully to remove Dippenaar.
South Africa 80-4 (Dippenaar 14)
1244: Gibbs gets another boundary with an edged drive that somehow eludes a big slip cordon to disappear for four.
1237: Gibbs swings Anderson across the line for four and drives the last ball of the over for four to reach his fifty.
1234: Dippenaar moves to 13 with an all-run four off Flintoff.
1231: Anderson appears to trap Gibbs lbw, but umpire Dar, having had a fine match to date, fails to uphold the appeal.
1229: Gibbs pulls Anderson for four and drives behind gully for a second boundary.
1226: Gibbs and Dippenaar continue their rearguard action though there is plenty of life in the pitch to interest England's bowlers.
1221: A Dippenaar single brings up the South Africa team fifty.
1215: Anderson's third ball misses Gibbs's off-stump by an inch but the last few balls are off-line.
1210: Flintoff has one over before drinks with Dippenaar looking much more comfortable all of a sudden.
1204: Gibbs punches Hoggard straight down the ground for two more.
1200: Dippenaar has to fend off some ferocious bowling from Harmison who has silly point and short leg in place. Finally he edges one along the ground through the slips for four to get off a pair.
1153: Harmison is finally rediscovering some form in a testing over for Dippenaar.
1146: Gibbs square-drives Hoggard for four and adds a second boundary with another drive. But in between times, Hoggard has a massive appeal for lbw rightly declined by the excellent Dar.
1139: Kallis falls first ball as he edges an immaculate outswinger to Trescothick at slip.
South Africa 18-3 (Kallis 0)
1134: Hoggard swings a ball through Rudolph's defences to remove middle and leg-stumps and South Africa are in trouble now.
South Africa 18-2 (Rudolph 2)
1133: Gibbs drives Harmison through the covers for four.
1122: Rudolph lets a Hoggard ball go outside his off stump and almost pays the price as the ball misses the wicket by an inch.
1117: Hoggard traps de Villiers lbw with a ball that nips back a little off the seam.
South Africa 10-1 (de Villiers 3)
1115: De Villiers drives Harmison down the ground for three.
1111: As the clouds gather overhead, Hoggard, with four slips and two gullys in place, tries to remove Gibbs. But the batsman clatters a drive for four.
1028: Harmison produces a spiky first over to Gibbs with an exceptionally attacking field in place but oversteps twice as South Africa move to 2-0.
1022: Hoggard bowls the first ball of the innings to de Villiers, promoted to open after Smith's concussion on Sunday. He has a shout for lbw, with umpire Dar giving the batsman the benefit of the doubt.
1017: Trescothick edges Ntini to the wicket-keeper and the declaration is made.
England 332-9 declared, Trescothick 180, Harmison 3*
1008: Trescothick cuts deliberately through the vacant second slip area for four more and then spanks a six over deep square leg.
1007: Kallis is forced to take the new ball, with Pollock barred from taking it having spent a spell off the field.
1005: Harmison gets off the mark with a single off the recalled Ntini.
0959: Kallis is smashed high over long-on for six by an unstoppable Trescothick.
0956: Shielding Harmison from the strike as much as possible, Trescothick declines several singles before taking one off the penultimate ball of the over.
0951: Kallis gets the treatment as Trescothick middles a hook shot between two fielders for four. The next ball yields a massive appeal for lbw, which umpire Dar declines after a pregnant pause.
0946: Trescothick thumps Boje for another six and then bangs him down the ground with some delightful footwork for four more to move past 150.
0940: Trescothick clubs Boje across the line and Ntini cannot get round to take an extremely difficult catch, which he parries over the boundary rope for six. Two more fours in the same over take the Somerset man to 142.
0936: South Africa gain another wicket through the bowling of Kallis, as Hoggard edges an outswinger to the wicket-keeper.
South Africa 274-8 (Hoggard 0)
0933: Trescothick goes on the sweep in Boje's first over and is lucky to get away with a top-edged sweep.
0927: Giles's luck finally runs out as he carves Kallis straight to the man at point.
England 272-7 (Giles 31)
0925: Trescothick drives Kallis smartly down the ground for four. A single brings up the fifty partnership.
0921: Giles unleashes another square drive, off another Steyn no-ball, for another boundary.
0917: England's lead passes the 250-mark as Giles cover-drives Kallis for a fine boundary.
0913: Steyn gets Giles into plenty of awkward positions with some bouncers.
0906: Giles hits two fours off consecutive Kallis balls, the second spanked authoritatively through his favourite area in the covers.
0901: Trescothick continues to accumulate in unflustered fashion, unlike Giles who is a little unsettled by Steyn. The young bowler gives away two more runs in no-balls.
0856: Giles tucks Pollock away for another single.
0852: The players take drinks with more than an hour-and-a-half to go before lunch.
0846: Steyn, beginning a fresh spell, is unlucky not to have Giles caught on the boundary, as the batsman top-edges a hook which sails inches over deep square leg's outstretched fingers for six.
0843: Giles looks uncomfortable as he faces Pollock, before he steers a ball into the covers for another precious single.
0837: Giles gets off the mark with a single off Ntini, then Trescothick punches the bowler down the ground for a couple.
0830: Jones climbs into a hook shot off Pollock but de Villiers takes a fine catch on the boundary to give South Africa a sniff.
South Africa 222-6 (Jones 13)
0826: Trescothick middles a cut shot off Ntini but picks out Herschelle Gibbs on the bounce. The next ball goes in the same place but high over the fielder for four.
0820: Jagging a ball back into Jones, Pollock looks eager for South Africa's sixth wicket.
0814: Pollock tries an around-the-wicket approach to Trescothick who nonchalantly drives through mid-on for one boundary and laces another through the covers.
0810: Ntini over-pitches to allow Jones to spank another cover-drive through a gap in the field for four.
0804: Jones and Trescothick scamper a cheeky leg-bye off Pollock.
0800: Jones cover-drives the first ball of the day, a Steyn half-volley, for four.
South Africa: Graeme Smith (capt), Herschelle Gibbs, Jacques Rudolph, Jacques Kallis, AB de Villiers, Boeta Dippenaar, Mark Boucher (wkt), Nicky Boje, Shaun Pollock, Makhaya Ntini, Dale Steyn.
England: Marcus Trescothick, Andrew Strauss, Robert Key, Michael Vaughan (capt), Graham Thorpe, Andrew Flintoff, Geraint Jones (wkt), Ashley Giles, Matthew Hoggard, Steve Harmison, James Anderson.
Umpires: SA Bucknor and Aleem Dar; Match referee: CH Lloyd.