The veteran winger struck with just two minutes to go as Bolton’s five-match winning streak shuddered to a halt.
Ipswich had created the better chances but a tight game was meandering towards a goalless draw until Edwards tucked in a cross from substitute Jay Emmanuel-Thomas.
Edwards had almost opened the scoring with the first opportunity of the match in the 13th minute when Andy Drury crossed to the far post, but he planted his header into the side-netting.
Drury then got on the end of a cross from David McGoldrick, but his header was too close to Bolton goalkeeper Andy Lonergan.
Daryl Murphy should have put the hosts ahead after 23 minutes but he slipped as he tried to get onto the end of McGoldrick’s low cross and his effort rolled wide.
Bolton finally found their way into the Ipswich area on the hour mark when Alonso picked out Eagles.
The winger’s first touch was superb but his second let him down as he scuffed the chance wide.
At the other end McGoldrick skipped inside from the right wing and curled a shot narrowly wide of Lonergan’s far post.
Freedman sent on club captain Kevin Davies to replace namesake Craig and the veteran striker immediately began making a nuisance of himself.
Eagles picked out Davies in the area but Tommy Smith just managed to block his shot.
Edwards could have found the net with six minutes to go after he was cleverly set up by Luke Hyam, but the winger could not control his first-time shot and it bounced the wrong side of the post.
However, he made no mistake in the 88th minute after Emmanuel-Thomas charged down the wing and crossed from the byline, the 34-year-old tucking in the cross to secure three valuable points.