Oduro took a pass from Eddie Gaven and struck a rising ball that sneaked inside the right post for his second goal, countering a 34th-minute goal by Jack McInerney.
McInerney received a pass by Danny Cruz from the right flank after the Union beat the offside trap for a two-man break. McInerney had an open net for his third goal after goalkeeper Andy Gruenebaum came out to challenge.
The Crew (2-1-2) has played to draws in its two home matches, while the Union (2-2-1) earned its first point in Columbus in four tries.