Since losing their first two games of the season, the Union are 4-1-1 in their last six matches. Philadelphia recorded its first home victory over the Impact since 2014, a stretch of five matches (0-2-3).
Despite the victory, the Union had cause for concern when goalkeeper Andre Blake left with a groin injury in the 54th minute. Matt Freese, a product of the Union's academy, made his MLS debut as Blake's replacement and finished off the clean sheet.
The Impact entered the match on a run of 276 minutes without a goal allowed. A pair of first-half defensive mistakes, however, ended that shutout streak.
A sloppy turnover from Daniel Lovitz put the ball at Burke's feet in the 14th minute, and the Philadelphia striker took advantage with a hard shot from outside the box. The goal was Burke's second of the season.
In the 43rd minute, Zakaria Diallo was called for a foul in the box on Jack Elliott, leading to a Union penalty kick. Monteiro converted the kick for his first goal as a member of the Union, after joining the club on a loan deal in March.
Bedoya bailed out Burke to account for Philadelphia's third goal in the 57th minute. A cross from the right side of the box somehow went through Burke's legs in front of the net, though Bedoya was in position to capitalize on the chance.
Ignacio Piatti missed his fifth straight game due to a knee injury. Montreal's attack continued to stagnate without its star midfielder; the Impact have scored only two goals during Piatti's absence.
Union defender Kai Wagner was ejected after being issued a red card in the 90th minute. Wagner will be suspended for Philadelphia's match against Vancouver next Saturday.
The Impact are back in action on Wednesday when they visit the New England Revolution. Eight of Montreal's first nine games this season are away from home.