Chicago (16-8-5) won its fourth straight and seventh in the last eight to move two points behind first-place Sporting Kansas City in the Eastern Conference.
Jairo Arrieta took advantage of a miscue by Fire goalkeeper Sean Johnson to score in the 15th minute for Columbus (13-11-6). Johnson took a drop pass from a defender and kicked it directly to Arrieta, who took three quick steps to his left and fired a hard shot that scrambling defender Andy Friedrich had no chance to stop.
Rolfe then scored twice in a span of 3:16, tying the score in the 23rd minute with a ground-hugging, left footed drive from 16 feet out. He put the Fire ahead with the game’s last goal, a 15-yard that went over goalkeeper Andy Gruenebaum high into the left corner of the net.
The Crew forced the issue in the final minutes, but Johnson made a diving punch save on Josh Williams in the 79th minute to thwart Columbus’ last big scoring chance. He made six saves in all.
Columbus has lost three of its last four matches after winning four straight.