It was the seventh straight game the Sabres scored two goals or fewer.
"I think we played overall a really solid game," forward Victor Olofsson said. "We kept their shots down too. Obviously, it's frustrating. I think it comes down to special teams. Our power play (0-for-4) has just got to be better."
It was Hart's seventh straight win. He is 9-1-0 with a 1.91 goals-against average and .934 save percentage in 10 games since returning from an abdominal strain sustained during practice Jan. 14 that kept him out for one month.
"It's just playing the game and having fun," Hart said. "That's the biggest thing for us right now. We're enjoying coming to the rink."
Hart made seven saves against the Sabres power play to help the Flyers go 4-for-4 on the penalty kill.
"I think we're getting used to that," Voracek said. "He's been rock solid since the beginning of the year. He was the main reason why we won the game, why we even had a chance going into the third to find a way."
Giroux scored his second goal at 9:28 of the third period to give Philadelphia a 2-1 lead. Voracek's centering pass went off Buffalo defenseman Jake McCabe's stick, and Giroux one-timed it.
Joel Farabee made it 3-1 at 14:49 when he blocked a Hutton clearing attempt and knocked the puck between the goalie's feet.
Kahun tied the game 1-1 with 3:06 remaining in the second period when he one-timed a pass from Olofsson.
The Sabres' 39 shots on goal were their most since they had since 44 against the Ottawa Senators on Dec. 23.
"We won a lot of battles tonight, and just that final push, our offensive players just are lacking confidence right now," Buffalo coach Ralph Kruger said. "The mojo is not there where the pucks are bouncing in; they're bouncing out. We haven't earned the puck luck of late."
Giroux gave the Flyers a 1-0 lead at 10:04 of the second. He reached back with his left skate to stop a Voracek pass and scored with a backhand.