Cammalleri, who returned to Calgary's lineup after missing the past three games with a hip flexor, now has 200 goals in his seventh NHL season.
Brendan Morrow scored a pair for the Stars (7-6-1), who had won four straight games including a 4-1 road victory over the Edmonton Oilers one night earlier. Eric Nystrom and Cody Eakin also scored, while Jaromir Jagr had two assists.
Leland Irving started his fourth straight game in the Calgary net and made 30 saves to improve his record to 2-1-1.
In just his second start of the season, Dallas goalie Richard Bachman stopped 16-of-22 shots he faced.
Jay Bouwmeester put the Flames up 1-0 at 3:11 of the first period when he crept in off the point to swat a loose puck past Bachman, who was screened on the play.
The Stars had a great chance to tie up the game a short time later, but Irving made a great paddle save to deny a short-handed attempt by Ryan Garbutt.
At the other end of the ice on the same power play, Hudler one-timed a shot from the slot by Bachman to finish off a nice three-way passing play.
Cammalleri added another power-play goal for the Flames before Nystrom scored his second goal in as many games for the Stars. Czervenka then converted a feed from Tanguay to put the Flames up 4-1 heading into the first intermission.
Just 45 seconds into the second period, Morrow scored during a Dallas power play. Cammalleri then counted his second of the game at 3:23 of the second before Morrow swatted a loose puck past Irving 24 seconds later.
Shortly after Czervenka rang a shot off the crossbar, Glencross tapped a great pass from Iginla into the Dallas net behind a sprawling Bachman to give Calgary a 6-3 lead.
With Matt Stajan already in the penalty box for tripping, Calgary defenceman Dennis Wideman was assessed a delay of game penalty late in the second for smothering the puck with his hand to give the Stars a five-on-three power play for 59 seconds.
While the Stars didn't cash in during the two-man advantage, Eakin scored with Wideman still in the box 65 seconds into the third to pull Dallas back within two goals.
That's as close as Dallas would get though as Cammalleri completed his hat trick with an empty-net goal to secure the victory.
Notes: Calgary forward Paul Byron left the game in the first period with a fractured left hand. Byron was summoned from the AHL's Abbotsford Heat only a day earlier to play his first NHL game of the season with the Flames. … Stempniak recorded his 150th assist of his career, while Calgary blue-liner Mark Giordano also reached a milestone by setting up his 100th goal. … Flames goalie Miikka Kiprusoff missed his fourth straight game with a knee injury. … The Flames chose Irving 26th overall in the first round of the 2006 NHL Entry Draft, while the Stars picked Bachman 120th overall in the fourth round that same year.