With the Flames leading 3-2, Cammalleri scored an insurance goal for Calgary at 10:17 of the third period, firing a shot from deep in the corner that eluded goaltender Michal Neuvirth.
Until that point, Neuvirth had been perfect since entering the game at 12:50 of the first period. He was summoned when Cammalleri's first goal, a deflection of a point shot from Dennis Wideman, made it 3-1 Calgary and resulted in Capitals coach Adam Oates pulling starter Braden Holtby.
Calgary put the game away at 14:28 of the third on the first goal in seven games for Curtis Glencross.
Also scoring for Calgary (5-4-2) was Kris Russell and Jiri Hudler. The Flames were back at home after going 1-4-0 on a five-game road trip.
Calgary has yet to lose in regulation at home (3-0-1). Its three-game homestand continues Wednesday night against the Toronto Maple Leafs.
Jason Chimera and Aaron Volpatti scored for Washington (5-6-0), which had its three-game winning streak come to an end.
The Capitals have two stops left in a five-game road trip. Their next stop is Monday in Vancouver.
Alexander Ovechkin, the NHL's third-leading scorer going into Saturday, was held without a point for just the third time this season and first in the Saddledome.
Ovechkin did have his chances though. Early in the second, Marcus Johansson zipped a cross-ice pass to him but Karri Ramo slid across to thwart him at the side of the net. On a similar setup later in the period, he fired a shot wide.
Calgary defended him well. Bursting down the wing in the third, he tried to go around Russell, but the Flames defensemen stood in there and took away the scoring chance.
After a good first period for Calgary, outshooting Washington 17-8 and taking a 3-1 lead, the Capitals narrowed the gap with the only goal of the second period.
TJ Galiardi's clearing attempt was intercepted at the blue line by Mike Green who went cross-ice to Nate Schmidt and his shot from the blue line was stopped by Ramo. But the rebound kicked into the slot and was hammered in by Volpatti for his first of the season.
It was the second and final meeting of the season between the two teams and for Holtby, the night went similar to the first meeting, when he was pulled 16:22 into the first after three goals on 11 shots and the Capitals down 3-0.
On this night, it was three goals in 12:50 and a 3-1 deficit.
Calgary got off to a fast start, jumping out to a 1-0 lead on a strong opening shift by the line of Joe Colborne, Galiardi and Cammalleri.
The trio hemmed the Capitals in their end nearly the entire time and the persistent pressure led to Russell's first goal as a Flame at 1:04.
The shot advantage reached 11-2 in Calgary's favor at 7:24 after Hudler converted Sean Monahan's rebound.
Hudler leads the Flames with 13 points and has points in 10 of Calgary's first 11 games.
Washington entered the night ranked No. 2 on the power play, but it was blanked on four tries by a Flames penalty-killing unit ranked second from the bottom.
Notes: Calgary was without Lee Stempniak. Riding a five-game scoring streak (three goals, two assists), Stempniak was out with a lower-body injury. Already out for the Flames and missing his third game was captain Mark Giordano (lower body). ... Derek Smith, who played Friday night with Abbotsford (AHL), caught an early flight and played his first game of the season. ... Schmidt's assist on Volpatti's goal was his first NHL point ... In a beer promotion, 3,000 red helmets with red lights on the top were given out to fans sitting behind the nets. They turned on the lights for Flames goals.