Chicago made it nine straight unbeaten as Chris Rolfe netted a winning goal with only a few minutes left.
Alan Gordon, the hero in San Jose's big comeback win over LA, scored for the Earthquakes in the 14th minute. Locking onto a looping ball over the top, his header beat Paolo Tornaghi but bounced off the crossbar. Gordon was there to follow up however, tucking away an easy finish to take the lead.
Chicago equalized in the 36th minute. Gonzalo Segares crossed to Dilly Duka, who popped the ball in the air with his right foot and scissor-volleyed a shot with his left into the ground, which bounced through the penalty area and into the far corner.
Patrick Nyarko put the Fire ahead just a few minutes after the restart, rushing into the box to meet Duka's cross after the midfielder made a good move to get into position to launch his low pass.
The game was level again in the 73rd minute, thanks to an own goal. Jalil Anibaba attempted to cut out Jason Hernandez on a corner, but the ball deflected off his leg and in.
Chicago grabbed the late winner in the 84th minute. Mike Magee ran through the middle and played a near-perfect pass into the path of Chris Rolfe at the far post, and Rolfe hit home to grab all three points for the home side.
The Fire are now unbeaten in nine matches in all competitions.