The Fire (16-10-5) had a chance to move within two points of Kansas City for the lead in the Eastern Conference, but trailed from the 7th minute on after Jack McInerney beat goalkeeper Sean Johnson with a low shot.
Gabriel Gomez scored on a header for Philadelphia in the 67th minute and Dominic Oduro cut Chicago's deficit in half 2 minutes later.
Chicago's hopes dwindled when Guillermo Franco was sent off for a hard challenge on Brian Carroll in the 79th minute.
Philadelphia (9-15-6) has won two of its last three.
'SNL': 'Anchorman 2' cast, One Direction sing 'Afternoon Delight' [VIDEO]
Wisconsin business offering 'therapeutic cuddling' forced to close