Pappa scored in the second minute, beating goalkeeper Andy Gruenebaum cleanly on a right-footed volley from 25 yards out.
Oduro doubled the advantage in the 25th when Sebastian Grazzini found him with a through-ball and the Ghanaian forward put it home for 2-0 lead.
But only 4 minutes later Chicago (7-5-3) went a man down when Gonzalo Segares' hard tackle on Crew midfielder Kevan George earned him a straight red card.
Tony Tchani put Columbus (5-5-4) on the board in the 35th minute, but the Crew couldn't dent Fire goalie Sean Johnson thereafter.
Columbus lost for the first time seven games and missed a chance to catch Chicago for fourth place in the Eastern Conference.
Millions of Getty images now available for free via embed tool
Ray Liotta sues skin care company over use of likeness