West Indies, who won the toss, were 35 for two at lunch on the first day of the third and deciding Test with a three-match series all square at 1-1.
England spearhead Anderson, who started this match on 497 Test wickets, had lunch figures of two for 18 in 10 overs after removing both Kraigg Brathwaite and Kyle Hope with the aid of catches by wicket-keeper Jonny Bairstow.
Kieran Powell was 17 not out and Shai Hope eight not out.
Despite a green-tinged pitch affected by fungus, West Indies captain Jason Holder — whose side were unchanged following their shock five-wicket win in the second Test at Headingley — opted to bat first as he backed his top order to come through the tricky overcast conditions.
Anderson, who went wicketless in the second innings at Leeds, should have had his 498th Test wicket when he took Brathwaite’s outside edge when the opener, who made 134 and 95 at Headingley, was on three.
But Alastair Cook, who floored two first-slip catches as West Indies chased 322 for victory last week, dropped a seemingly routine chance.
It was not a costly error as Anderson, however, squared Brathwaite up on 10, and Bairstow made no mistake with a simple catch to leave West Indies 18 for one.
Rain then stopped play for some 40 minutes and when the match resumed Anderson had Kyle Hope out for a duck when the batsman, trying to withdraw his bat, was well caught by Bairstow diving to his right, in front of Cook.
Anderson had taken two wickets for no runs in 12 balls and West Indies were 22 for two.
Hope’s exit brought in younger brother Shai Hope fresh from scores of 147 — his maiden Test century — and a match-winning 118 not out in Leeds.
The 23-year-old, carrying on from where he left off, got off the mark first ball by punching Anderson, now just one wicket away from becoming only the sixth bowler to join Test cricket’s ‘500 club’, through the covers for an elegant four.