The tourists, faced with a tricky hour to bat until stumps on the second day, lost John Campbell to the recalled Sam Curran and were 32-1 at the close.
They could have lost nightwatchman Alzarri Joseph to the penultimate ball of the day but the hosts, looking to level the series, opted against reviewing a Curran lbw shout.
Earlier, Dom Sibley made a painstaking 120 and put on 260 with Stokes after England had been in trouble at 81-3 on Thursday following the loss of returning captain Joe Root.
An excellent day 👊Scorecard/Clips: https://t.co/OngNindE11#ENGvWI https://t.co/CH6a9Nhorm
— England Cricket (@englandcricket) 1595009257000
England had been forced into a late change to their pace attack after fast bowler Jofra Archer was dramatically omitted Thursday for breaching the bio-secure bubble by making an unauthorised trip home to Brighton after the West Indies’ four-wicket win in last week’s first Test at Southampton.
But left-arm paceman Curran, who might not have played if Archer had been retained, made the breakthrough when an inswinger had Campbell lbw on review to leave West Indies 16-1.
England came into this match already planning to revamp their pace attack, with Stuart Broad — angry at being rested for the series opener – back in action.
James Anderson, was rested in turn, even though this match was taking place at the Lancashire home ground of England’s all-time leading wicket-taker, with Chris Woakes recalled in place of Mark Wood after he too was given a breather.
YESSS! @CurranSM makes the breakthrough! 🙌Scorecard & Videos: https://t.co/zUaWdFMRLG#ENGvWI https://t.co/UldCUMr0fg
— England Cricket (@englandcricket) 1595008518000
But the day was about Sibley and Stokes, whose partnership was the second-highest for the fourth-wicket by England against the West Indies, behind the celebrated stand of 411 shared by Peter May and Colin Cowdrey at Edgbaston in 1957.
Sibley’s hundred was one of the slowest in Tests by an England batsman, the opener batting for 471 minutes — nearly eight hours — to complete a 312-ball century featuring a mere fours.
But the 24-year-old Warwickshire right-hander’s second hundred in his eight Tests, following his 133 not out against South Africa at Cape Town in January, was a valuable innings.
And he made normally reliable West Indies captain Jason Holder pay for dropping him in the slips on 68.
Run-scoring was difficult against a swinging ball and on a sluggish outfield, with even the usually fluent Stokes taking nearly six hours and 285 balls to complete his 10th Test century.
But Stokes’ third fifty came off just 46 balls and, having given Sibley a “head start” of 31.2 overs, he overtook his team-mate’s total as he led from the front bat, even though he had handed back the captaincy to Root, who missed last week’s match to attend the birth of his second child.
England resumed on 207-3, with Sibley 86 not out and Stokes, unbeaten on 59.
Stokes, 99 not out at lunch, went to three figures with a cheeky reverse-swept four against off-spinner Roston Chase.
The left-handed batsman then upped the tempo against the new ball, notably with a remarkable check-drive six over midwicket off Joseph.
Having batted for over nine hours Sibley holed out to deep midwicket off Chase.
Kemar Roach checked England’s progress when he struck for the first time this series with two wickets in two balls.
In his 71st over of the campaign the persevering paceman had Stokes, attempting an ambitious reverse sweep, caught behind to end a 356-ball innings featuring 17 fours and two sixes before Woakes was caught in the gully.
Jos Buttler (40) and Dom Bess (31 not out) made useful runs, with Chase taking 5-172 in 44 overs.