At lunch, on the fourth day, West Indies, 1-0 down in the four-Test series, were 99 for three in their second innings against England, still needing a further 356 to reach their victory target of 455.
Runako Morton was 21 not out and Shivnarine Chanderpaul five not out.
Fast bowler Harmison, in a fine opening spell of one wicket for 12 runs in eight overs, including five maidens, accounted for the dangerous Chris Gayle.
And left-arm spinner Monty Panesar followed up by removing Devon Smith, for 42, to end a third wicket stand of 53 with Morton.
West Indies resumed on 22 for one after captain Daren Ganga had been lbw for nought on Saturday to Harmison, showing signs of improvement after being wretchedly wayward during this series.
Gayle was 11 not out and fellow left-hander Smith 10 not out.
Harmison was on-target early on and struck Gayle a painful blow on the left hand.
West Indies went 20 balls without a run off the bat until Gayle, standing on one foot, clubbed a short ball from Harmison over extra-cover for four. Smith followed up with a backfoot force through cover-point.
But Harmison was rewarded when Gayle, on 16, edged a full length delivery to the bowler's Durham colleague Paul Collingwood at second slip to leave the tourists 35 for two.
His 500th first-class wicket was applauded by Allan Donald, watching from the pavilion and the former South Africa quick appeared to be having an effect during his first match in a five-week stint as England's pace bowling advisor.
Morton greeted Panesar's first ball of the day with a fierce on-drive down the ground.
Smith later cover-drove and square-drove Panesar for successive boundaries.
But he could do nothing but glove a Panesar delivery that turned and bounce to Alastair Cook at short leg. He faced 85 balls with seven boundaries, his side 88 for three.
West Indies faced a stiff chase after England made 313 in their second innings featuring 106 from Cook - the 22-year-old opener's sixth hundred in his 17th Test.
Seam-bowling all-rounder Darren Sammy took seven for 66 on his Test debut.
But well though he bowled, Sammy could not disguise a shoddy West Indies fielding display.