Calgary's Mikael Backlund beat Matt Ellis on a face-off in the Sabres end, drawing the puck back to Chris Butler. From the blue-line, Butler's shot towards the net was neatly deflected by Cammalleri past Nathan Lieuwen.
Cammalleri has been red-hot in March with seven goals in his last nine games. That came after a stretch leading up to the NHL trade deadline in which he had one goal in 14 games.
The 31-year-old, who will be an unrestricted free agent this summer if he doesn't re-sign, takes over the team lead in goals from rookie Sean Monahan.
Joe Colborne and Paul Byron also scored for Calgary (28-34-7). Chris Butler added two assists as the Flames won for the ninth time in their last 11 games at the Scotiabank Saddledome.
Drew Stafford scored for Buffalo (19-42-8). The last place Sabres, who have dropped seven games in a row, entered the night 11 points back of 29th place Edmonton.
The Flames got a key insurance goal from Byron at 13:27 of the third, making it 3-1 on Calgary's league-leading 12th shorthanded goal of the campaign.
Byron made no mistake wristing a shot past Lieuwen after being sprung on a breakaway by Butler.
After trading Ryan Miller to the St. Louis Blues at the deadline, the Sabres were poised to move forward with the goaltending tandem of Jhonas Enroth and newly picked up Michal Neuvirth.
However, injuries to both of them resulted in the Sabres opening a five-game road trip with Lieuwen, 22, making his NHL debut while his back-up— with 13 NHL games of experience— was Matt Hackett. It was just three days ago that they were the goaltending duo with Buffalo's American Hockey League affiliate in Rochester.
After a lacklustre first period in which the Flames fell behind 1-0, they came out with more energy in the second period and took the play to Buffalo.
However, the 6-foot-5 Lieuwen stood tall and repelled the attack for the longest time— making a blocker save off Mikael Backlund, a glove grab off Cammalleri, and another big stop on Byron on a power play.
The Flames finally broke through and drew even with 1:02 left in the second.
TJ Brodie's slapshot missed the net and caromed sharply off the end boards. Sean Monahan got a stick on it and it eventually came out to Colborne, who buried his eight goal of the season to tie it.
Playing on a line with Monahan and Cammalleri, Colborne has been playing his best hockey of the season of late with four goals and six assists in his last 13 games.
Buffalo entered the night struggling mightily, amassing just five goals in six straight regulation-time losses.
Stafford had three of them and he kept up his hot hand notching the opening goal at 13:22 of the first period.
Flames rookie Ben Hanowski skated behind his own net with the puck before spinning to reverse the puck the other direction. To his surprise, however, Stafford was right there on the end boards to intercept it. Stafford curled out front and on a wraparound, quickly tucked in his 14th goal behind surprised goaltender Joni Ortio.
Lieuwen finished with 21 saves in losing his first decision. Ortio had 13 stops to even his record at 4-4-0.
Notes: Calgary C Matt Stajan returned to the Flames line-up. He was away from the club for 13 days and missed eight games after the death of his son Emerson following childbirth two weeks ago... Not dressed for Calgary was rookie Kenny Agostino. Signed on Monday after Yale's NCAA season came to an end, coach Bob Hartley said he would make his NHL debut Friday against Nashville... Buffalo C Torrey Mitchell (lower body) returned after missing six games... Buffalo led after the first period for only the 11th time, which is lowest in the league. They are 4-6-1... Lieuwen, from Abbotsford, B.C., had plenty of friends and family in attendance. Included was his wife, his parents and his brother.