Joe Colborne and Josh Jooris also scored as Calgary (26-19-3) won for the fifth time in its last six games.
Chris Stewart scored the lone goal for Buffalo (14-31-3).
Tied 1-1, Jooris gave the Flames the lead at 9:05 of the third period.
Jooris dropped the puck to Colborne from deep in the Sabres zone on a 3-on-3 rush. Colborne's shot deflected off Buffalo defenceman Mike Weber to Jooris at the side of the net and he quickly fired in his 10th goal of the season.
It's the also the fourth game-winning goal of the season for the 24-year-old rookie.
After Colborne jammed in a rebound at 14:06, Gaudreau wrapped up the third period onslaught, in which the Flames outshot Buffalo 15-2, scoring his 15th of the season at 17:28.
The Sabres have lost 12 consecutive games, all in regulation. That's a franchise record and the longest streak in the NHL since the Pittsburgh Penguins lost 13 in a row in regulation in 2003-04.
The last regulation win by Buffalo came against the Flames just under seven weeks ago, a 4-3 win in which Calgary outshot the Sabres 45-19.
On Tuesday night, the shots were 31-18 for Calgary.
Tied 1-1 after 20 minutes, neither team scored in the second period although both teams had chances.
Late in the second period, Sean Monahan missed an empty net from close in and on the subsequent rush, Jonas Hiller made his best save of the game, sprawling and jabbing out a pad to rob Stewart at the side of the net.
Playing its first game in nine days, Buffalo didn't have anything going early, taking nine minutes to register its first shot. However, after an offensive zone hooking penalty by Colborne, the Sabres 30th ranked power play went to work and connected after just 13 seconds.
The goal, which gave Buffalo the lead at 10:33 of the first period, came on a nifty deflection by Stewart of a shot from Tyler Ennis. Stewart's seventh goal gives him goals in consecutive games after only scoring twice in the previous 20 games.
The lead was short lived as the Flames responded by taking advantage of its first power play of the evening. At 13:40, Gaudreau skated out from the side of the net and fired the puck past Jhonas Enroth.
It was the first power-play goal in six games for Calgary, which entered the night on a 4-for-57 tailspin over the previous 17 games to drop the Flames from eighth in the league to 23rd.
Hiller made 18 saves in the victory while Enroth stopped 27 shots in the losing effort.
Notes: The NHL record for consecutive regulation losses is 17, a mark shared by San Jose (1992-93) and Washington (1974-75)... Buffalo rookie D Nikita Zadarov did not play. He's been suspended by the team for missing practice on Monday... Injured Flames LW Curtis Glencross (lower body) is expected to return to practice on Wednesday. He has missed four games... Calgary scratched all three players recalled from Adirondack (AHL) on Monday — Tyler Wotherspoon, Sven Baertschi and 25-year-old David Wolf, who has yet to play an NHL game.