Tino Best struck the highest score by a Test number 11 as the West Indies all but ended England's chances of completing a series whitewash at Edgbaston.
Best smashed 95 in a thrilling last-wicket partnership of 143 with Denesh Ramdin, who scored 107 not out as the Windies took their first-innings total from an overnight 280-8 to 426.
England lost their top three batsmen cheaply before Kevin Pietersen and Ian Bell steadied the ship with a fluent partnership of 137.
Pietersen was caught at slip off Marlon Samuels for 78 and Jonny Bairstow was clean bowled by Best for 18, but Bell remained unbeaten on 76 as England reached 221-5 at the close, still 205 behind.
With only one day's play remaining, and rain forecast, a draw seems inevitable, but thanks to the heroics of Best an otherwise forgettable Test will live long in the memory.
When the Windies lost their ninth wicket in the first over of the day, it appeared England would soon be setting about overhauling a total of less than 300.
But Best had other ideas, the stocky fast bowler from Barbados launching into a thrilling counter-attack.
He threw the bat at anything wide from the seamers and cut successive balls from Graeme Swann for four to go past his previous highest Test score of 27.
He became the first number 11 to score a fifty against England since 1906, launching into an exuberant arm-wheeling celebration on reaching the mark.
He surpassed India paceman Zaheer Khan's record for a number 11 of 75 with a four over gully then hammered Tim Bresnan's next ball over the bowler's head for six.
Meanwhile Ramdin, dropped by Pietersen in the gully on 69, played watchfully at the other end before accelerating through the nineties to bring up his second Test century - and first for 22 innings - off 160 balls.
Another extraordinary celebration followed as Ramdin removed a piece of paper from his pocket carrying the words "Yeah Viv Talk Nah" - a riposte to criticism of his batting on Test Match Special from Windies legend Sir Viv Richards.
With the crowd willing Best to reach three figures, the pressure seemed to tell, and after almost falling twice to Jonathan Trott's part-time medium pace, he was deceived by a slower ball from Graham Onions and caught by Andrew Strauss running back from slip.
Best was not out of the action for long, and he was soon testing out the England openers with deliveries in excess of 90mph.
The breakthrough came at the other end, however, as Ravi Rampaul thudded one into Alastair Cook's pads to send him on his way.
Trott was bowled by Darren Sammy off an inside edge before Best had Strauss caught at first slip, and set off on another wild celebration.
At that point, England were reeling on 49-3, but Bell soon restored a sense of calm to proceedings with some considered strokeplay, allowing Pietersen to go through his full range of shots.
Off-spinner Sunil Narine found the going tough on his Test debut, conceding 68 runs from 13 overs as the pair reached their fifties within a single ball of each other.
After two short interruptions for bad light, Pietersen steamed to within 22 runs of his 21st England ton before he was caught at slip trying to run Samuels down to third man.
Fittingly, Best had the final word as he followed up a bouncer with a fuller delivery to Bairstow and flattened the Yorkshireman's middle stump.