The Blues (41-19-5), who had lost two in a row, picked up seven of a possible 10 points during a five-game road trip.
"I liked the way we played tonight," St. Louis coach Ken Hitchcock said. "We have played some of our best hockey recently and not gotten points, so it was nice to play some good hockey and get points. There was a little bit of a lull at the start of the third period, but for the most part I thought we kept our foot on the gas for most of the game and made them defend for more than they wanted to."
Jaden Schwartz scored at 14:49 of the first period when he broke into the Toronto zone on the right side, used Maple Leafs defenseman Eric Brewer as a screen, and put a sharp-angle shot off the far post behind goaltender Jonathan Bernier. It was Schwartz's 22nd goal of the season.
T.J. Oshie made it 2-0 1:41 later when he snapped a backhand high past Bernier for his 17th goal of the season.
Blues leading scorer Vladimir Tarasenko added to his total with his 32nd goal at 19:45 on a play that was similar to Schwartz's. Tarasenko used Toronto defenseman Morgan Rielly as a screen and snapped a shot off the far post from the right side.
"You don't want to give those guys that shot from the top of the circle," Hitchcock said. "They can both score from distance and it's accurate. Both Schwartz and Tarasenko use screens as well as anyone in the NHL."
The Blues were penalized for too many men on the ice at 9:08 of the second period and responded with a shorthanded goal. After a Maple Leafs icing, defenseman Chris Butler's slap shot from the right point hit the stick of Toronto center Peter Holland and flew high into the goal behind Reimer at 11:07. It was Butler's third goal of the season.
Booth spoiled Elliott's shutout at 2:59 of the third period when he tipped a pass from defenseman Jake Gardiner high into the net. It was Booth's third goal of the season and second in as many games.
Toronto (26-35-5) lost its second in a row.
"I think there was no effort," Maple Leafs coach Peter Horachek said. "We didn't win any of the 50-50 battles, we didn't compete hard, we didn't forecheck, we didn't keep the puck in the offensive zone. Playing from behind and chasing the game is not a good way to play. There were small little push-backs, but it just wasn't enough."
The Maple Leafs were outshot 17-5 in the first period and didn't get their first shot on goal until 10:58. James Reimer replaced Bernier at the start of the second period.
"That wasn't the effort that guys should accept," Booth said. "That was frustrating. If you don't come to compete against a team like that, they'll pick you apart, and that's what they did."