Stuart Broad led a spirited fightback from England's bowlers in Antigua but missed chances and belligerent batting from the West Indies left the tourists battling to save both the second Test and the series.
Broad was the central figure in the drama of the second day, taking three wickets and seeing Jos Buttler drop a pair of simple catches in the slips, but all the while the hosts were building a position that left them 85 ahead on 272 for six at stumps.
The 32-year-old seamer, surprisingly dropped for the thrashing in Barbados, bowled brilliantly at times, consistently threatening while also completing 11 maidens in his 21 overs.
On another occasion he might have chiselled England a stronger foothold in the game but a total of four dropped catches – Keaton Jennings and Rory Burns shelling much harder ones than Buttler – and two dismissals rightly overturned on DRS saw their first-innings 187 comfortably cleared.
The Caribbean batsmen deserved credit too, Kraigg Brathwaite (49) and Darren Bravo (33no) each lasting over 150 balls in testing conditions.
Unable to strike a blow in 21 overs on the first evening, during which the Windies ground out 30 hard-fought runs, England were hoping for a big push before lunch.
As it was they managed a solitary wicket in the morning session at a cost of 96 runs, an equation that barely began to tell the story of Broad's trials and tribulations.
Omitted in Barbados – for the third time in four Tests – and wicketless on his previous outing in Colombo, this was a prime moment to restate his pedigree.
He might have struck in the very first over, Jennings throwing himself forward at square-leg but failing to cling to Brathwaite's flick. Jennings was on in place of Ben Foakes, the wicketkeeper having been sent for X-rays on a bruised right hand, with Jonny Bairstow donning the gloves.
Broad thought he had Campbell next over only for replays to prove the batsman had been caught off his arm rather than his bat. Frustration turned to despair when a booming edge from Campbell, on 27, sailed to third slip and Buttler spilled.
After several more delightful deliveries to the left-hander, and one loopy top edge that just evaded Bairstow, Broad's stint improbably ended without joy.
Stokes denied Campbell a devil-may-care half-century, Buttler making partial amends by gathering safely at second, ending an English wicket drought lasting 101 overs.
The afternoon was kinder, with four wickets falling for 86. Moeen Ali got the ball rolling, the patient Brathwaite out bat-pad to Jennings one short of 50, before Broad belatedly got his rewards in a strong second spell.
Shai Hope was set up perfectly to feather behind, Broad closing in on the edge with precision. Having waited 144 days for a Test wicket – the world's number one batsman Virat Kohli had been his last – Broad grabbed another three balls later.
Roston Chase stood no chance whatsoever, castled by a shin-high shooter, but it was hard to begrudge Broad's extravagant celebration.
The Windies were one run shy of drawing level with England when they lost their fifth wicket, the excitable Shimron Hetmyer well caught by James Anderson at long-off. Hetmyer had already been reprieved off Anderson's bowling, Burns diving athletically to get two hands to a difficult chance only for it to wriggle free.
Bravo and Shane Dowrich followed with a 50 stand either side of tea but, true to form, it was far from simple. Buttler caused Broad further anguish when Bravo, on 20, squeezed a full ball into the cordon and the vice-captain juggled it to the floor.
Dowrich, having already reversed an Anderson lbw, nicked a lifter from Broad with the lead at 49 and Buttler held it to avoid a hat-trick of drops.
Bravo and Jason Holder finally wore England's patience thin in a 36-run stand occupying 115 deliveries.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Rory Dollard, Press Association Cricket Correspondent, North Sound');
ga('pacontentapi.set', 'dimension2', '283c68c5-e83f-4d0f-b039-158c41085558');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:uk,paservice:sport:world');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:cricket');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'West Indies on top in second Test despite Stuart Broad brilliance'});