Oskar Sundqvist had a goal and an assist, and Kasperi Kapanen and Nick Leddy each scored for the Blues (3-2-1), who have won two of three.
"Right from the get-go in the game, I liked the way we were moving and skating and playing," St. Louis coach Craig Berube said. "Our forecheck, we established that right away, we talked about that, and our cycle game, it was good."
Jacob Markstrom made 32 saves for the Flames (2-5-1), who have lost four in a row and six of seven heading into the 2023 Tim Hortons NHL Heritage Classic against the Edmonton Oilers at Commonwealth Stadium in Edmonton on Sunday (7 p.m. ET; TVAS, SN, TBS, Max).
"Everybody's sick of losing for sure," Calgary defenseman Nikita Zadorov said. "I don't want to lose four in a row. It's still early in the season. We can fix that stuff. I believe in this team. I think we have a really good team, really good skill players. I think we can get out of it. Just embarrassing in front of our fans tonight, for sure."
Kapanen gave the Blues a 1-0 lead at 11:23 of the first period with a short-handed goal. He shot over Markstrom's glove on a breakaway after Sundqvist picked up a Nazem Kadri turnover in the offensive zone.
"It's my move. There's not much to it," Kapanen said. "(Sundqvist) made a good play, good pass, and I thought I'd try it out and I'm just happy I got my first."