Schweinsteiger slipped a header, off a corner kick from Djordje Mihailovic, inside the post to cap the scoring.
The Fire (7-10-9) have won two games in a row for the first time since beating the New England Revolution 5-0 on May 8 and Minnesota United 2-0 on May 11.
Dax McCarty first-timed a pass from Schweinsteiger in the ninth minute and Nemanja Nikolic scored in the 19th to give Chicago a 2-0 lead. Francisco Calvo stole a pass near midfield and played a through ball to Aleksandar Katai, who crossed it to Nikolic for the side-footed finish from point-blank range.
Saphir Taider converted from the spot in the 34th minute and Bacary Sagna scored his first goal of the season to tie it in the 76th. Jorge Corrales took a corner kick from Maximiliano Urruti and lobbed a cross toward the far post where Sagna headed home the finish.
The Impact (10-13-3) have lost six of their last seven games.