Chicago recovered from Juan Pablo Angel's first-half penalty to tie the game at 1-1 at the break, thanks to a goal from debutant Austin Berry.
And after the Fire had the best chances late in the game to win, Pappa finally secured victory with a goal in the 93rd minute, handing Chivas their fifth-straight defeat at home.
Berry's first game in the MLS started badly when he gave away a penalty after 21 minutes.
As a cross came in from the left, Chivas forward Alejandro Moreno tried to get in behind Berry and the 23-year-old grabbed a hold of his opponent's arm, dragging the Venezuelan to the ground.
The referee blew his whistle and Angel calmly scored from the spot.
But three minutes later, Berry made up for his earlier mistake with the equaliser for the visitors.
Dan Gargan's long throw was cleared by the Chivas defence, but Sebastian Grazzini chipped the ball back into the penalty area where Berry stuck his foot out to volley the ball into the net.
Chicago had more goal-scoring opportunities than the hosts throughout the match, racking up 20 shots to Chivas' 10.
That dominance paid off with just about the last kick of the match when Pappa took Frederico Puppo's lay-off and blasted his shot into the bottom left corner of Chivas' goal.