Patience is starting to pay off for rookie Mark Jankowski.

Jankowski had two goals and an assist, Sam Bennett scored his first of the season and Kris Versteeg had the winner as the Calgary Flames scored five times in the third period in a 7-4 victory over the St. Louis Blues.

Game Wrap: Flames score five in third period to beat Blues1:34

The Flames are finally getting secondary scoring with the line of Jankowski, Jaromir Jagr and Bennett leading the way in their third game together.

"We've got a few games under our belts with my two linemates now and we're really clicking," said Jankowski. "We knew we were getting our chances and the goals would come if we kept playing that way."

In a wild third period that saw Calgary take a lead twice only to see the Blues come back to tie it each time, the Flames went in front for good at 14:29 when Versteeg's shot off the wing beat Jake Allen.

"Big win for us. We knew how good they've been playing," said Versteeg.

Micheal Ferland scored his fourth goal in as many games for Calgary (10-7-0) and Johnny Gaudreau and Michael Frolik added empty-netter. Gaudreau had two points to extend his point streak to seven games (five goals, seven assists).

The Flames went 5-2-0 on their season-long home stand. They open a six-game road trip on Wednesday in Detroit.

Vladimir Tarasenko scored a pair for St. Louis (13-5-1). Jaden Schwartz and Alexander Steen also scored.

"We got what we deserved tonight," said Blues coach Mike Yeo. "We just weren't ready to play and that was evident right from the drop of the puck. We were very fortunate to tie the game up in the third period on a couple occasions — very, very fortunate."

Bennett put the Flames in front 3-2 to open the third-period barrage when his backhand off a Jankowski shot slipped through Allen's pads.

Steen tied it at 11:46 before Ferland's power-play goal restored Calgary's one-goal lead at 12:31. But 12 seconds later, Tarasenko one-timed a Schwartz pass to tie it again.

'Sloppy' play plagues Blues

"We just played sloppy the whole time. We played into their hands and we were just very careless," said Blues centre Paul Stastny. "We did a good job of coming back and being resilient after we let up what was a questionable goal on the penalty, but we came right back and scored a big goal. Then, just made two careless turnovers. It was just what we did all night."

Flames goaltender Mike Smith, who has started 16 of Calgary's 17 games this season, had to leave after the first period with an undisclosed injury. There was no update on his condition.

Eddie Lack played the final 40 minutes, stopping 13 of 15 shots for his first win as a Flame.

"It's just very nice to get that first win," said Lack. "It's obviously not the way that I thought it was going to be for sure and I didn't play my best game, but I felt I made a huge save when it mattered the most there in the third."

With a great chance to tie it 5-5 with just over five minutes left, Lack robbed Dmitrij Jaskin on a backhand from in front.

Allen, who faced 36 shots, took the loss.

"Time to tighten up. I think we're giving them all their opportunities," said Blues defenceman Alex Pietrangelo. "Most of them are just puck errors. Our goalies can only stop so many great opportunities."