England lost Andrew Strauss and James Anderson early in their chase of 191 to close on 10/2 and set up a fascinating final day, after the West Indies frustrated them with the bat.
Strauss was caught at gully off a beauty of Kemar Roach which reared up and caught the edge of the England skipper's bat as the West Indies tore into England before the close.
James Anderson then gloved Roach through to the wicket-keeper and Jonathan Trott survived a review by a fraction to his first delivery as the West Indies breathed life into the final day.
Stuart Broad earlier took four wickets to finish with match figures of 11/165 and become the first Englishman since Sir Ian Botham in 1978 to take ten wickets in a match at Lord's.
In near Baltic conditions, Shivnarine Chanderpaul and Marlon Samuels frustrated England for the entire first session of the day during a partnership of 157, with Samuels in fine form and Chanderpaul - who finished nine short of a ton - typically belligerent.
But England chipped away, and when Graeme Swann trapped Chanderpaul LBW on the sweep it was only a matter of time before the innings drew to a close. Darren Sammy played an entertaining cameo and Dinesh Ramdin made a steady 43, to make sure England would have to bat well to secure the victory.
Ebb and flow
England started the morning knowing that an early breakthrough could lead to a quick finish, with a weak West Indies tail just a couple of wickets away.
But Chanderpaul and Samuels carried on where they left off on the third evening, looking comfortable against an England attack devoid of any menace.
Samuels in particular began in fluent fashion, striking the ball straight and true - particularly when Swann was employed in short bursts. Chanderpaul at the other end did what Chanderpaul does - leave well, defend stoutly and attack rarely but with conviction.
Both would have been a fitting addition to the Honours Boards at Lord's, and after a wicketless first session saw the pair pass 50 and England look flat it seemed a good probability.
However, Samuels has only reached three figures twice in a 37-Test career and it wasn't to be once again, as Broad found an edge which was gratefully clutched by Swann at second slip.
Dinesh Ramdin, the diminutive wicket-keeper batsman, carried on where Samuels left off though, finding the track easy-paced and true.
Chanderpaul's vigil was finally ended just shy of Tea. After his first innings 87* he came even closer to his second Lord's century with 91, but Swann finally managed to sneak one past his defences and onto the pad, and Marius Erasmus wasted little time in raising his finger. Chanderpaul instantly reviewed the decision but it was found to be clipping leg stump.
The assumption was that the West Indies would crumple after Tea but Sammy - as pure a striker of the ball as you could wish to see - played a lovely cameo. Bresnan was smacked back over his head and Broad was thumped through the covers as the captain racked up six boundaries in his innings of 37.
He went playing a wafty hook off Broad to make the English fast bowler the first man since Sir Ian Botham to take a ten wicket haul at Lord's. Kemar Roach was the next man to go, caught by Bairstow at point for Broad's 11th, and Anderson finally got in on the act, cleaning up Dinesh Ramdin for a 104-ball 43.
Fidel Edwards didn't last much longer but Shannon Gabriel got his Test tally ticking after surviving a king pair, making 13 to help drag the lead up past the 190 mark.
And that looked a potentially match-winning score by the close, after the drama which unfolded in the final half an hour's play.