The Fire (11-7-5) moved past D.C. United and into fourth place in the Eastern Conference with 38 points. Chicago has won two straight and is 2-0-1 in its last three matches.
Philadelphia took a short-lived lead with an own goal in the 34th minute, but Rolfe tied it the 43rd minute, and Friedrich gave the Fire a 2-1 advantage with a goal in stoppage time. Rolfe's second goal in the 56th minute gave Chicago a two-goal cushion.
The Union (7-12-2) had won a franchise record four consecutive matches at PPL Park. They played without forward Jack McInerney, who received a red card in their last match, Aug. 4 at Montreal.
Philadelphia also was missing captain and defender Carlos Valdes and midfielder Gabriel Gomez. Both players were called up for international duty, Valdes with Colombia, and Gomez with Panama.