At lunch, England were 340 for six in reply to West Indies' 370 -- still 30 runs behind after resuming on 259 for two in ideal, sunny, batting conditions.
England captain Andrew Strauss was 125 not out, having started the day unbeaten on 102 -- his second hundred in as many matches after his 123 in the five-wicket first Test win over the Windies at Lord's.
Tim Bresnan was unbeaten on four.
This was the first time in his 21 Test hundreds -- one shy of the England record of 22 held jointly by Walter Hammond, Colin Cowdrey and Geoffrey Boycott that Strauss had added more than six runs when not out overnight on a century.
But the fact he'd scored just 23 runs in the session was testament to the accuracy of West Indies' attack, with fast bowlers Ravi Rampaul and Kemar Roach doing the damage.
Kevin Pietersen had looked in excellent touch while making 72 on Saturday.
But he'd added just eight runs to his overnight score when he was leg before to a Rampaul inswinger.
Despite his challenge, Pietersen had to go for 80 to end a stand worth 144
At that stage, Rampaul had taken three for 43 and the rest of the attack none for 210.
The West Indies took the new ball as soon as possible with England 299 for
three off 80 overs.
And it brought rewards with Roach, who'd sent down eight no-balls Saturday, getting back into his stride with two wickets for six runs in 16 balls to reduce England to 308 for five.
Fourth delivery with the new ball, Roach had Ian Bell aiming across the line, lbw for 22 although the tourists had to challenge umpire Aleem Dar's original not out verdict.
Jonathan Bairstow, in just his second Test, never looked comfortable against the short ball and, trying to turn a rising Roach delivery legside, got a leading edge to mid-on and was caught by Shivnarine Chanderpaul.
West Indies captain Darren Sammy, who scored his maiden Test hundred on Saturday, then got in on the act when the medium-pacer bowled Matt Prior off the inside edge.