Brian Elliot made 23 saves to record his second shutout of the season and 23rd of his NHL career.
The Oilers (11-24-3) have lost a season-high six straight games. They fell to 5-11-1 at home. It was the sixth time this season Edmonton has been shut out and the third time in five games.
Edmonton controlled the bulk of the play through the first half of the opening period, outshooting St. Louis 10-1. However, St. Louis grabbed the lead.
Oilers goalie Ilya Bryzgalov rushed out of the net to prevent Berglund from getting a breakaway after he stepped out of the penalty box, but couldn't clear the zone. The puck came to Stewart at the side of the net before Bryzgalov could get back into position, and Stewart scored his 11th goal.
Edmonton ended up with 14-5 edge in shots in the first period.
The Blues went ahead by two goals six minutes into the second period on a pretty tic-tac-toe passing play. Derek Roy and Stewart got the puck to Morrow in front, and he lifted a backhander up high and into the net.
St. Louis made it 3-0 just shy of two minutes into the third period when Berglund made a feed from behind the net to Stewart, who scored his second of the night.
Only 56 seconds later, the Blues scored again. Schwartz crossed the blue line and unleashed a shot that seemed to fool Bryzgalov before it clipped the post and went in.
The lead grew to 5-0 seven minutes into the third with a power-play goal. Roy made a perfect feed through the crease to Stewart at the side of the net, and he completed his third career hat trick with a shot into the wide-open net.
St. Louis continued to pound on the Oilers with seven minutes left, and Bryzgalov allowed a soft goal on a long shot by Berglund that tipped off his glove before landing in the net. It was the NHL-leading ninth short-handed goal allowed by the Oilers this season.
It was the first meeting since an offseason trade in which David Perron was sent from the Blues to the Oilers for Magnus Paajarvi and a second-round draft pick. Perron entered the game with 27 points in 33 games, while Paajarvi had just two points in 15 games. ... Edmonton D Corey Potter returned from a two-game suspension. ... Oilers forward Ryan Jones missed the game after being knocked unconscious in a collision with captain Andrew Ference in the morning skate. ... St. Louis captain David Backes returned to the lineup after missing two games with a concussion. Also out for the Blues were forwards Vladimir Sobotka (upper body) and Ryan Reaves (hand) and defenseman Jordan Leopold (hand).