England, at tea on a rain-marred second day, had been bowled out for 194 in reply to West Indies' first innings 123 to leave the match finely balanced with this three-Test series all square at 1-1.
Kemar Roach took five for 72, with West Indies captain and fellow seamer Jason Holder following up with four for 54.
James Anderson, unbeaten on eight after Stuart Broad was last man out for a valuable 38, spent the 20-minute tea break knowing he was just one away from becoming the first Englishman to take 500 Test wickets.
That followed the Durham all-rounder's six for 22 on Thursday in overcast conditions ideal for his lively right-arm swing bowling.
More From This Section
But it might have been a very different story when, just two balls into the second session after a rain delay, Stokes, on 24, edged Shannon Gabriel only for Kraigg Brathwaite to drop a tough chance as he dived far to his left at second slip.
Brathwaite had to go for the catch as, despite the overcast conditions continuing to make life tough for the batsmen, there was no third slip.
The delivery after the drop saw Holder reinforce his slip cordon.
As if to underline the error, Stokes celebrated his reprieve by driving that very next ball from Gabriel down the ground for four.
Bairstow found runs rather harder to come by and, after repeatedly playing amd missing at Roach, was lbw to the fast bowler for 21 to end a stand of 56.
It seemed as if the West Indies had made another costly mistake when Gabriel bowled Stokes only for replays to reveal a no-ball.
This time, however, Gabriel had kept his front foot behind the crease line and he had his only wicket of the innings.
Roach had his fifth wicket when new batsman Moeen Ali, rarely able to resist the lure of driving outside off stump, fell for three when he sliced the paceman to gully, where Kyle Hope held a sharp catch.
Ali's fall meant Roach had achieved one of West Indies' pre-match aims by gaining a coveted place on the dressing room honours board that records all those who've taken five or more wickets or scored a hundred in a Test innings at Lord's.
England resumed on their overnight 46 for four, with Dawid Malan and Stokes both 13 not out.
Roach, adjusting his angle from around the wicket, nipped one away to have left-hander Malan, still to cement his England place ahead of the upcoming Ashes tour of Australia, caught behind for 20 on his Middlesex home ground.