GLENDALE, Ariz. -- Sluggish in the first period, Phoenix scored its first two goals on fortunate bounces in the second.
Once the Coyotes got rolling, there was no stopping them, particularly the way Thomas Greiss was turning away shots.
"The first period was so-so, I guess, but I really thought we started to play well in the second," said Mikkel Boedker, one of seven Phoenix players with multiple points. "We got a couple of lucky bounces, but sometimes that's what you need to get going."
Phoenix needed a spark after consecutive disappointing home losses to Columbus and Philadelphia.
After a tight-checking first period, the Coyotes took control in the second period, scoring two of their three goals on fortuitous bounces.
Phoenix raced away from the Flames after that to win in regulation for the first time since beating the Islanders 6-3 on Dec. 12.
Greiss capped off Phoenix's big night with some tough saves for his second career shutout.
"It was kind of a strange game, kind of mucky there in the first period," Coyotes coach Dave Tippett said. "We were able to get a little puck luck there in the second and kind of pushed the game along."
Calgary arrived in the desert late after playing Colorado the night before.
The Flames were able to muck it up to keep up with Phoenix in the first period, but had no answer when the Coyotes got rolling.
Reto Berra allowed at least five goals for the third time this season, and the Flames were shut out for the fourth time in six games. Calgary has lost nine of 11.
"We're part of a process where excuses will not be a part of it," Flames coach Bob Hartley said. "They were better than us. We kind of fell apart after those two goals."
The Coyotes had Greiss between the pipes after coach Dave Tippett decided to give starter Mike Smith the night off. Smith had been anxiously awaiting word on whether he would make the Canadian Olympic team. Tippett wanted his goalie to rest after such an emotional day, even after he made the team.
Though he won't supplant Smith as the starter -- Phoenix signed Smith to a six-year, $24 million contract last summer -- Greiss has, in some ways, been more consistent this season.
In his first season with the Coyotes, Greiss entered Tuesday's game 5-2-1 with a 2.12 goals-against average. He earned the victory on Dec. 31 against Edmonton by stopping 15 shots after Smith was pulled in the second period.
Greiss was solid early. He had the highlight of the defensive-dominated opening period, making a spectacular glove save when Dennis Wideman was left open in front on a power play.
Greiss turned away a couple of tough shots on a power play in the second period, including a glove save on Mike Cammalleri, and stopped 13 shots in the third period.
"He's just really solid in there," Tippett said. "He doesn't do anything really flashy, just gets in front of the puck and I guess that's what he's supposed to."
While Greiss kept the Coyotes in it early, two fortunate bounces put them up 2-0 quickly in the second.
Doan was the recipient of the first, when Boedker sent a pass from behind the net that bounced off Berra's shoulder, hit the Coyotes captain's shoulder, and went in.
The Coyotes scored again 1:36 later when a shot by Korpikoski ricocheted sideways off Vrbata's skate right to Hanzal, who one-timed a shot before Berra could slide over.
Boedker made it 3-0 later in the period, one-timing a pass from Ribeiro for his 13th goal and career-high 29th point of the season.
Korpikoski punched in his own rebound in the third period and set up Stone's goal with a nice drop pass.
"We played a team that's had the success they've had because they stay patient and stick with it, and we saw the snowball effect of it," Cammalleri said. "They did it the right way and we did it the wrong way."
Phoenix had two other players added to Olympic rosters on Tuesday: Korpikoski to the Finnish team, and D Oliver Ekman-Larsson to the Swedish team. Hanzal and D Zbynek Michalek were named to the Czech team on Monday. ... Calgary D Ladislav Smid was named to the Czech Olympic team, and Berra made the Swiss team. ... Flames RW Lee Stempniak played his 600th NHL game. Smid played in his 500th. ... Ekman-Larsson missed his second straight game because of an upper-body injury, but skated with the team Tuesday morning. He might be available by Thursday.