CALGARY - Sean Monahan came through for the Calgary Flames on a night in which key members of the team were suffering from the flu.

Monahan scored two goals and assisted on Johnny Gaudreau's winner as Calgary overcame a wild third period to beat the Buffalo Sabres 4-3 on Thursday.

The Flames blew third period leads of 2-0 and 3-2 before putting the game away at 15:10 when Gaudreau worked a give-and-go with Monahan then zipped a low shot through Chad Johnson's pads.

"It wasn't one of our best games but we found a way," said Monahan, who tied a career-high for points in a game, done once before. "When you make costly mistakes like that, it obviously hurts you, but right now we have that confidence in this room we're gonna come back in games and tonight we did it again."

The winner came 55 seconds after the third goal of the period for Sabres defenceman Rasmus Ristolainen, who banked a shot off the skate of Calgary defenceman Dennis Wideman and past Jonas Hiller to tie it 3-3. Ristolainen is the first defenceman to score three goals in a period since Al MacInnis on Oct. 12, 1998, according to Elias.

Monahan has eight goals and 14 points in his last 14 games. In the season's first 14 games, he had just two goals and eight points. Monahan is now tied with Gaudreau for the team lead in goals with 10.

"Mony's a great student. He pays attention, he works at his game in practice and obviously he is showing progress and he deserves it," said Flames coach Bob Hartley.

Markus Granlund also scored for the Flames (12-14-2), who have won four straight. Calgary has been especially good at home, where they've won eight in a row for the first time since Feb. 23 to March 27, 2013.

Hiller finished the game with 27 saves while Johnson turned away 28 shots for the Sabres (11-15-3).

In the six-team logjam behind Los Angeles in the Pacific Division, the Flames are tied with Edmonton for the fewest points, yet are just four points back of second place Vancouver and with two games in hand.

The Sabres were 3-0-1 when they entered Western Canada for a three-game road trip, but return home having lost all three games, after losses to the Flames, Canucks and Oilers.

"They outworked, they outbattled us and that's not the way we should play, especially the situation — three losses, tough road trip," said Ristolainen.

Ristolainen erased the Flames' 2-0 lead with a pair of power-play goals to open the third.

Monahan's temporarily restored the lead at 9:25 on a set-up from Gaudreau.

It was only Hiller's second start since the end of October. Karri Ramo was supposed to start his 16th game in his last 17 but came down with a worse flu than what was already ailing Hiller, who had to leave practice early on Wednesday and was not on the ice at Thursday's morning skate.

"You should've been in the locker room around 5:30, quarter-to-6 when the medical staff runs in the coach's office saying 'guys are puking everywhere'," said Hartley. "You have Karri Ramo in the laundry room and you have Jiri Hudler in the doctor's room and they're throwing up and they're white like ghosts and suddenly you look at Jonas Hiller and he's coming in, and he's whiter than a snowman."

Notes: The Flames franchise record for home wins is 10. ... With Hudler (flu) a scratch, Brandon Bollig played for the first time in six games. ... Hartley coached career game No. 890, moving him ahead of Punch Imlach and into 31st on the NHL all-time list.