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.
Daryl Murphy should have put the hosts ahead after 23 minutes but he slipped as he tried to get onto the end of David McGoldrick's low cross and his effort rolled wide.
Bolton were content to try to hit Ipswich on the break but were unable to create any clear-cut chances in the first half, instead being restricted to long-range efforts. Chris Eagles let fly from 25 yards but fired over, Stephen Henderson saved Craig Davies' speculative effort and Marcos Alonso drove wide.
After the break Murphy pounced on some dozy defending from Zat Knight and burst towards goal. He could have played in McGoldrick but instead opted to keep charging into the penalty area, only to eventually lift his shot too high.
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.
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.