South Africa, fired by Graeme Smith's second consecutive double century, declared on a record score of 682 for six early in the final session of the third day, setting England a target of 509 to avoid an innings defeat.
Smith, who made 277 in the first Test, was dismissed for 259 as his side amassed their biggest total in Tests.
Boeta Dippenaar added 92 while Mark Boucher hammered 68 off 51 deliveries at a sun-drenched Lord's.
England, skittled for 173 in their first innings, will have to bat for more than two days to save the game. Their most successful bowler was James Anderson, who took two for 90.
The tall 22-year-old Smith batted for just over nine-and-a-half hours for his second consecutive double century, working most of his 34 boundaries to leg, before he fell during the afternoon, edging James Anderson back into his stumps.
The left-hander had been within sight of his own South Africa Test innings record of 277 -- which he had made in the first Test -- before he departed to a standing ovation.
Only the fourth man ever to make double hundreds in consecutive Test matches, he has now scored 621 runs in the series, at an average of 207.
Worse still for the home side, he has batted for 20 hours and 19 minutes in all, some five hours longer than England's three innings in total.
Against the South African undercard, England looked to have more of a chance but seemed determined to let each one slip through their fingers on to the Lord's turf.
Their fielding performance, after South Africa resumed on 412 for two, was not only painful to their supporters but also to wicketkeeper Alec Stewart.
He was hit just under the eye following a stumping half-chance -- the ball brushed Smith's pad as he charged out of his crease having amassed 247 -- and had to be replaced by Anthony McGrath behind the stumps.
Stewart returned later to rejoin the suffering.
In all the home team, under Michael Vaughan for the first time, missed five simple chances, all of them proving expensive. Smith was spilled on eight, Gary Kirsten on 54 before he made a century, while Dippenaar was missed twice.
On 15, he was dropped off a basic chance off the persevering, perspiring all rounder Andrew Flintoff by Ashley Giles at first slip.
On 36, he was given another life, this time at second slip off Darren Gough by Mark Butcher to huge groans from the crowd. He also had close lbw escapes, facing Flintoff, just before making his half-century.
He went on to make 92, with South Africa passing their previous record Test innings score of 622 for nine against Australia in Durban in 1969-70, before he attempted to drive back over Giles's head only to edge to short extra cover.
Boucher added spark to the afternoon with a 43-ball half-century and 68 off 51 balls, including 12 fours and one thumping six off Giles, before his stumps were spreadeagled by Anderson.
Earlier Jacques Rudolph, a far more elegant left-handed shot-maker than Smith but yet to match him in any other way, was caught behind for 26 off Flintoff.
The first Test of the five-match series was dominated by South Africa but ended in a draw after a day's play was lost to rain.