CALGARY — The return of Johnny Gaudreau helped Calgary turn out its biggest offensive outburst of the season.

Gaudreau had a goal and an assist and Sam Bennett, Alex Chiasson and Matt Stajan each had three-point nights as eight different players scored in the Flames' 8-3 win over the Anaheim Ducks.

It was a surprise when it was revealed in the morning that Gaudreau would return to the lineup less than three weeks after surgery on a broken finger, an injury originally believed to take four to six weeks to recover from.

"I was just itching to get back out there playing with the guys," said Gaudreau, who has four goals in his last four games after scoring only two in his first 14. "It's exciting to come back in here and play with the guys. It's a long 10 games when you're watching them play."

On his first shot of his first shift, he took a drop pass from Bennett and whipped a shot past Jonathan Bernier at 2:09 to make it 1-0.

"It's pretty amazing. Johnny's been out for two-and-a-half or three weeks and hasn't lost a step," said Chiasson, who also got in a fight. "Some of the moves he made tonight were just stunning."

In his absence, Calgary went 6-3-1 and had played its best defensive hockey of the season, but the club wasn't scoring a lot. The Flames had not scored more than three times in a game since Oct. 28 against Ottawa.

Flames coach Glen Gulutzan inserted Gaudreau on a line with Bennett and Chiasson.

Troy Brouwer, Dougie Hamilton, Sean Monahan and Mark Giordano also scored for Calgary (13-13-2). The Flames finished a perfect 3-0 on their homestand.

Ryan Kesler, with 10th and 11th goals, and Logan Shaw scored for Anaheim (12-9-5). The Ducks return home after a 1-1-1 road trip through Western Canada.

It was 1-1 when a rare home-ice power-play goal for Calgary at 11:28 of the second touched off a stretch of five goals on six shots in a 6:04 span against Bernier.

Calgary was 2 for 45 on the power play at the Saddledome when Brouwer tipped in Monahan's shot.

"It just seemed like the roof caved in from that point," said Ducks coach Randy Carlyle.

Chiasson shovelled in a Bennett rebound less than a minute later and 35 seconds after that, Stajan deflected in Dennis Wideman's slapshot.

Back on the man advantage, the Flames made it two straight conversions when Bennett redirected in Mikael Backlund's pass at 16:37. Hamilton completed the second-period barrage 55 seconds later ripping a slapshot into the top corner.

Caryle said he normally would have pulled Bernier but John Gibson was sick with the flu.

"It kind of left him hanging high and dry. We wouldn't normally have never done that to him, but in these situations you can't put people who are sick into the net," Carlyle said.

Monahan and Giordano made it 8-1 with third-period goals before Kesler and Shaw added late goals for the Ducks.

"Crazy game," said Ducks centre Antoine Vermette. "When they scored a couple quick goals that was certainly a turning point in this game. After that, everything seemed to go their way."

Starting for the 10th time in the last 12 games, Chad Johnson had 30 stops to improve to 8-2-0 over that span. He is 10-4-1 on the season.

Bernier, who went the distance, finished with 17 saves. His record falls to 4-2-1.

Notes: It was the most goals Calgary has scored since winning 8-1 over Edmonton on March 22, 2014... Micheal Ferland (hand) left the game in the first period after a fight with Kevin Bieksa. But the injury is believed to be minor... Corey Perry has gone 18 games without a goal... Lance Bouma (upper body) skated without a non-contact jersey Sunday and is nearing a return. He's missed 15 games.