Jordan Kyrou scored his first NHL goal for St. Louis (10-14-4), which is 3-7-1 in its past 11 games. Jake Allen allowed three goals on six shots. He was replaced in the first period by Chad Johnson, who made 12 saves.
"Right now, we're not committed enough to what we want to accomplish," Blues forward Alexander Steen said. "You know, tonight was a couple of unlucky bounces and it completely changed the competitiveness of the game."
It's the sixth time in 16 home games (6-8-2) the Blues have allowed at least five goals.
"We're a fragile group," Blues forward Brayden Schenn said. "[The fans] come to see us play, and pay to see us play, and that's multiple times where we've put out poor performances on home ice. It's obviously unacceptable and we've got to find ways to not only win hockey games, but make this a tough place to play, a proud place to play in front of our fans."
Boeser gave the Canucks a 1-0 lead at 2:31 of the first after his shot in the slot hit off the glass behind the net and bounced in off Allen's skate.