Casey Mittelstadt scored short-handed on a breakaway with a backhand under the crossbar to extend the Sabres lead to 3-1 at 13:10, and Tuch scored 46 seconds into the second period on the first shot Vladar faced to make it 4-1. Tuch has four goals in a three-game streak.
Lewis shot past Comrie on a broken play around the top of the crease to cut it to 4-2 at 19:58, and Zadorov scored short side on a screen 1:09 into the third to make it 4-3.
"You gotta give them credit, they played a great game and they responded well," Flames forward Nazem Kadri said. "We got one early in the third period and obviously they responded with a goal. So you gotta tip your cap, but it was a little too easy for them breaking through the neutral zone tonight and that seemed to be a bit of an issue with us."
Tuch shot by Vladar's blocker on the power play at 5:41 for the 5-3 lead, and again into an empty net at 18:35 for the 6-3 final.
"Somehow he always scores when we have to score," Dahlin said. "He breaks the momentum. He's such a momentum-breaker player. We're super happy to have him and he did a great job tonight. Stay hot, 'Tucky.'"
NOTES: Tuch became the first New York-born (Syracuse) player to have a hat trick for Buffalo. … JJ Peterka assisted on Dahlin's goal to tie a Sabres rookie record with a four-game point streak (two goals, two assists) to open a season. Victor Olofsson also had a four-game point streak to start the 2019-20 season. ... Flames coach Darryl Sutter coached his 1,401th NHL game, moving him into a tie with Ron Wilson for ninth in NHL history. ... Flames defenseman Noah Hanifin did not play because of an undisclosed injury. ... Sabres defenseman Henri Jokiharju left the game at 4:59 of the first period after taking a wrist shot to the face. There was no update.