ST. LOUIS — Brian Elliott got a warm welcome in his old home.

Elliott stopped 23 shots in his return to St. Louis, Johnny Gaudreau and Sam Bennett each had a goal and an assist and the Calgary Flames beat the Blues 4-1 on Tuesday night.

"I had so much fun playing in front of these fans and in this building that I wanted to do it again even though it's with another team," Elliott said. "The guys did a heck of a job in front of me to get that win for me."

Elliott was traded from St. Louis to Calgary in June, and the 17,337 in attendance serenaded him with chants of "Moose," his nickname, on his first couple of saves.

"I knew how much the fans kind of loved that. It was special for me hearing that and really kind of got me into the game and have that feeling a little bit," Elliott said. "I'm sure they don't like the result now, but it meant a lot."

Elliott's best save came late in the second when he slid his right pad across the crease to rob Nail Yakupov on a rebound attempt.

"He reads the play so well," Flames defenceman Mark Giordano said. "A lot of their one-timers, if you really watch, he's already there before the puck is shot. It's a confidence booster for us. We know we can give up some shots and he's going to be there to stop them for us."

Dennis Wideman and Deryk Engelland also scored to help the Flames snap a seven-game losing streak at St. Louis.

Kevin Shattenkirk scored for the Blues on a two-man advantage in the third, and Carter Hutton made 26 saves. After winning their first three games, the Blues are 1-2-1 in their last four.

The Blues weren't surprised by Elliott's effort.

"He was great tonight, but we didn't make it too hard on him either," Shattenkirk said. "He's too good of a goalie to not have traffic in front of him, to not have grade-A scoring chances. We didn't really do anything to make him uncomfortable."

Wideman's power-play goal early in the first ended a string of 19 straight penalty kills for the Blues. Wideman gave the Flames the 1-0 lead after former Blue Troy Brouwer won the puck along the boards and found Wideman alone in the slot.

Engelland added to the lead midway through the first after Kris Versteeg sent him in alone on Hutton with a pass. The play started after Vladimir Tarasenko whiffed on a shot on the other end, sending the Flames in on an odd-man rush.

Bennett's wrist shot went in through a maze of traffic early in the second to give Calgary a 3-0 lead. Bennett had an assist on Engelland's goal, giving him his second multipoint game of the season, both against St. Louis.

The game was also a homecoming for Calgary's Matthew Tkachuk, son of former Blue Keith Tkachuk, who had an assist on Bennett's goal. Matthew Tkachuk, the 6th overall pick by the Flames, was one of four St. Louis area natives taken in the first round of this year's amateur draft.

"It was fun," Matthew Tkachuk said. "Kind of an eye-opening experience too with the play and the rink you kind of grew up in, so it's great to get the win. I had a lot of people here watching so I'm sure they're pretty happy."

NOTES: Blues F Alexander Steen played in his 500th game with St. Louis. ... Giordano played in his 600th game with Calgary. ... Brouwer and Elliott both joined the Flames in the off-season and received a standing ovation after the Blues played a video tribute to them midway through the first period.

UP NEXT

Flames: Return home to face Ottawa on Friday night.

Blues: Continue a three-game home stand against Detroit on Thursday night.