Sergei Belski-USA TODAY Sports

Oskar Sundqvist collected a goal and an assist and goaltender Joel Hofer recorded his first career shutout as the visiting St. Louis Blues beat the struggling Calgary Flames 3-0 on Thursday.

Kasperi Kapanen and Nick Leddy also scored for the Blues, who have been on a lose-one, win-one run since the season began.

Hofer, the St. Louis backup goaltender, made 26 saves for the victory in his second game of the season, the 10th of his NHL career. His best stop when the game was on the line came in the early going when he denied Walker Duehr on a golden chance.

Jacob Markstrom produced 32 stops for the Flames but received virtually no support as his team dropped a fourth consecutive clash. Calgary has one victory in its past seven outings (1-5-1).

The Flames, who have scored only four goals total in their past four outings, left the ice to a chorus of boos from the local faithful.

The Blues, who have struggled to score as well early this season, received an early boost when Kapanen netted a short-handed goal at 11:23 of the first period. Sundqvist took advantage of a Nazem Kadri turnover and sent Kapanen on a breakaway that resulted in Kapanen's first of the season.

Leddy's lucky bounce doubled the Blues' edge two minutes later. His long point shot ricocheted off the leg of Flames defenseman Nikita Zadorov and into the cage for his first of the campaign.

Sundqvist added an empty-net goal with 2:07 remaining in regulation, his first tally of the season.

The Flames mounted very little of a comeback. They managed only four shots on goal in the second period and only a couple of legitimate scoring chances before the game was out of reach.

In fact, had it not been for Markstrom, the result would have been much worse. He delivered a couple of stops on Jordan Kyrou, including a first-period breakaway, to keep his team in the game.

The Flames summoned defenseman Ilya Solvyov from the minors, and the 2020 seventh-round draft choice made his NHL debut.

More must-reads:

TODAY'S BEST
Giants All-Star pitcher suffers setback in recovery from injury
Watch: Juan Soto's first multi-homer game as a Yankee
'Ain't good enough': Draymond Green claims Celtics must 'win it all' or it's a 'failure'
Raptors expected to flip former NBA champion during the offseason
MLB insider reveals Mets' massive extension offer that Pete Alonso turned down
Celtics legend provides update after gruesome finger injury
Bulls hire former NBA head coach as top assistant
Chiefs move on from young running back
20-year MLB veteran working out, unsure about playing future
USA Hockey names HC for 2025 4 Nations Face-Off and 2026 Olympics
Key Knicks forward ruled out for Game 7 vs. Pacers
Pacers' Pascal Siakam leads team to Game 6 win vs. Knicks
Watch: Matt Duchene's 2OT winner sends Stars to conference final
Scottie Scheffler shoots improbable 66 after warming up for PGA Championship in a jail cell
Report: Tua Tagovailoa away from Dolphins amid contract chatter
Nuggets star has worrying comment about latest injury
Paul Skenes makes incredible Wrigley Field history in second-career MLB start
Giants rookie CF to undergo season-ending labrum surgery
Yankees' Juan Soto reacts to Hal Steinbrenner contract talk
Late goal sends Panthers to Eastern Conference Finals