The Blues are 15-8-4 on the road.
Dustin Penner scored for the Oilers (16-30-6), who are on an 0-10-2 skid and have dropped 19 of 20. Edmonton is approaching the franchise record winless streak of 14 games set in 1993. That team had 13 losses and one tie from Oct. 16-Nov. 7.
Edmonton has the fewest points in the NHL, five behind Carolina. The Oilers have won only once in their last 16 at home.
The Oilers took a 1-0 lead 7:44 into the second period when Robert Nilsson made a pinpoint pass to Penner, who fired a shot of the shoulder of goalie Chris Mason.
St. Louis tied it just 17 seconds later. The Blues controlled play after a faceoff in the Edmonton zone and scored on a point shot from Brewer.
The Blues went ahead 2:09 into the third on their only shot of the period. Steen lifted a puck over sprawling defenseman Denis Grebeshkov and past goalie Jeff Deslauriers for his 12th goal.
Edmonton had a great opportunity to score after pulling Deslauriers for an extra attacker, but Mason came up with a huge stop during a scramble in the final minute.
NOTES: The Oilers got C Gilbert Brule back in the lineup after he missed seven games because of the flu. Fellow center Mike Comrie returned from a 31-game absence caused by mononucleosis. Patrick O'Sullivan and Zack Stortini were healthy scratches. ... Oilers rookie D Taylor Chorney was in the lineup. Steve Staios and Ladislav Smid are still out because of concussions. ... Blues D Erik Johnson (upper body) was a surprise scratch for the Blues. He was deleted from the lineup during the pregame warmup. ... Blues RW David Backes played his second game in two nights after missing the previous three with an upper body injury. ... Carlo Colaiacovo (lower body) practiced with the Blues on Wednesday and could play as early as Saturday. ... The Oilers and Blues split their two previous meetings.