At stumps on the third day England were 121 for four in reply to the tourists' first innings 287, a deficit of 166, after dangerman Kevin Pietersen was out for nought to Sunday's last ball, caught behind off Edwards after under-edging a pull.
This meant England had lost three wickets for 11 runs in 17 balls.
Fast bowler Edwards, ended the day with three for 40 from seven overs.
But Andrew Strauss was still at the crease with a series-best 72 not out.
West Indies were rescued from the depths of 55 for four by an unbeaten 136 from Shivnarine Chanderpaul, his second successive Test hundred.
England captain Michael Vaughan has spoken recently about the need for his side to be "ruthless".
But Chanderpaul, dropped on nine by Ian Bell, and Corey Collymore put on 58 for the last wicket. Collymore was the last man out, falling lbw to left-arm spinner Monty Panesar for 13.
England's failure to finish West Indies off with the ball was compounded by their late lapses in concentration with the bat.
Vaughan fell shortly before stumps for 19, edging Edwards to Dwayne Bravo at second slip after a stand of 73 with Strauss.
Nightwatchman Matthew Hoggard (nought) then recklessly edged an ambitious drive off Collymore to first slip Chris Gayle.
West Indies are looking for their first victory in 20 Tests and an under-stated Chanderpaul told reporters after stumps. "It would be good to get a Test win.
"This evening we came back well. Hopefully tomorrow (Monday) we can get a few early wickets."
Earlier, West Indies recovered with a fifth-wicket stand of 86 between Chanderpaul and Bravo (44) that took them to 141.
Chanderpaul has now gone 13 hours and 24 minutes without being dismissed.
"The situation doesn't matter. I just go out there and dig in, that's the kind of person I am," Chanderpaul explained.
His 16th Test hundred, was his second as many innings after his 116 not out in England's 60-run third Test victory at Old Trafford where he made 50 in the first innings. He also hit 74 in the drawn first Test at Lord's.
England left-arm quick Ryan Sidebottom took five for 88, his first five-wicket haul in Test cricket.
Sidebottom, who returned to international duty six years after his debut when taking eight wickets in England's innings victory in the second Test at Headingley, said: "I couldn't have dreamed about this a month-and-a-half ago."
But he added his joy had been blunted by England's collapse. "It's not ideal to lose those late wickets but Andrew Strauss has batted fantastically well."
Left-handed opener Strauss had scored just one century in his previous 17 Test innings.
Edwards reduced England to 37 for one when Alastair Cook saw a leg-glance well caught by diving wicket-keeper Denesh Ramdin.
Strauss completed an 80-ball fifty with 10 fours after West Indies has drifted too many balls onto his pads.
Chanderpaul was given some nervous moments in the 90s by his team-mates.
He was six short of a hundred when Daren Powell irresponsibly tried to hook fast bowler Stephen Harmison and skied a catch to wicket-keeper Matthew Prior.
A rare loose shot from Chanderpaul, an edged drive over the slips for four against Harmison, took him to 98.
But next ball, trying to pull Harmison, Chanderpaul was hit on his unprotected left arm.
The 32-year-old, who missed West Indies record innings defeat at Headingley with a knee injury, was still on 98 when Edwards was bowled by Sidebottom, leaving West Indies 229 for nine.
But having survived some testing deliveries from Harmison, Guyana's Chanderpaul cut a loose one for four to complete a 176-ball hundred in nearly five hours with 14 boundaries.
West Indies resumed Sunday on 132 for four with Chanderpaul unbeaten on 44 and Bravo 43 not out after rain had washed out Friday's first day before bad weather meant only three hours play was possible on Saturday.
Bravo, not for the first time, gave his innings away when well set, adding just one to his overnight score before he inside-edged an attempted pull off Hoggard into his off-stump.
England already have an unassailable 2-0 lead in the four-match series.