Fighting for playoff position, the Flames broke a four-game losing streak, and moved within two points of eighth place Dallas in the Western Conference.
"We were definitely desperate," said captain Jarome Iginla, who scored and added an assist. "We know what's at stake and played a complete game. The guys competed hard and in the third period; when it counted, we applied good pressure."
The loss was the first for Phoenix at home since falling to Anaheim in late January, and ended a Coyotes run of 11-0-1 in the last 12 games. Phoenix goalie Mike Smith had only one loss in his last 12 games before he was outplayed by Calgary's Miikka Kiprusoff.
Kiprusoff made 29 saves.
The Flames had lost their last four games.
"We wanted to force the issue," said forward Matt Stajan. "I thought we had strong penalty killing and Kiprusoff came up with big saves. That was the difference."
Fighting for playoff position, the Flames made a strong statement with three goals in a span of 3:17 late in the first period. Scores from Mike Cammalleri while short-handed, from Curtis Glencross and from Jokinen lifted the Flames.
Iginla hit the empty net for the final Calgary goal.
The Calgary goals all resulted from Phoenix mistakes in its own end.
First, Cammalleri converted Iginla's pass into his 15th of the season. Less than two minutes later, Glencross picked up the Flames' second short-handed goal of the season when he skated around Ray Whitney and put the puck between Smith's right skate and the right post.
Jokinen then took the puck off Keith Yandle's stick and his backhander dropped in behind Smith to give the Flames a commanding lead after the first 20 minutes.
"We gave them three goals early and when you do that, it's tough to come from behind," said Phoenix captain Shane Doan. "We've come-from-behind too many times this season, and when that happens, you tend to get burned."
Still, the Coyotes did not waste much time in making a response: two goals in a span of 2:21.
Less than a minute and a half into the second period, Torres tipped in a shot by Yandle and then Rozsival, crashing in from the left point, blasted a 20-footer behind Kiprusoff at 3:48.
In the closing minutes of the period, Whitney had two opportunities to tie the game, First, he failed to convert on a breakaway, and on a late power play, he hit the left post behind Kiprusoff.
In the end, the Phoenix mistakes cost the Coyotes to drop their first game in regulation since that 4-1 loss to Ducks Jan. 31.
"You just can't make those kinds of errors and expect to win," said Coyotes coach Dave Tippett. "We pushed back, but ultimately when you don't deserve to win, you don't win."
Cammalleri's goal was his fifth in 19 games since being traded from Montreal. ... Calgary D Jay Bouwmeester played in his 560th straight game, ninth on the all-time list. . Rozsival's goal was his first since last March 24 against Columbus.
Copyright by STATS LLC and The Associated Press
GLENDALE, AZ - MARCH 01: Shane Doan #19 of the Phoenix Coyotes warms up with teammate Jason LaBarbera #1 as Mikka...