SAN JOSE, Calif. -- San Jose finally gave coach Ron Wilson something he's been looking for -- a game without giving the other team any power plays.
"When you're moving your feet, you're not going to take many penalties," Wilson said. "That's what I asked Santa for. Hopefully we can play like that all the time. It's not that hard."
Joe Thornton had the Sharks' only penalty, late in the first period. However, it coincided with penalties to Calgary's Kristian Huselius and Dion Phaneuf -- giving San Jose a power play.
Matthew Lombardi scored for the Flames, who lost for the sixth time in their last nine road games. Calgary, playing for the first time since its game Thursday night in Denver was postponed because of a blizzard, was 2-3 on a five-game trip.
"That was definitely a new experience for most of us," Flames right wing Jarome Iginla said. "On the other hand we were able to get some rest and we were excited about coming here with a chance to get to the top of our division. We didn't do that because we didn't put enough pressure on the Sharks. They are a good team and we didn't make it hard enough."
Calgary plays seven of its next eight games at home, beginning Tuesday night against Vancouver.
The Sharks beat Calgary for the second time this season -- handing the Flames one of their three home losses -- after losing three in a row to the Western Conference rival.
Trailing 1-0, the Sharks scored four straight goals to get their fifth win in seven games.
"We had a lead after the first period and we didn't push hard enough in the second," Calgary coach Jim Playfair said. "We let them back in the game."
Goc got it started for San Jose, tying the score with 13:01 left in the second period.
"I haven't scored for a while, so that was good," Goc said. "(Curtis) Brown made a good play. I passed him the puck and my defender took a step toward him so he gave it back to me and I shot it."
Michalek took advantage of a lucky bounce on a power play to give San Jose a 2-1 lead four minutes later. Matt Carle took a shot from the top of the left faceoff circle, and the puck dribbled behind Flames goalie Mikka Kiprusoff, who fell trying to save it. Michalek poked it in from the right post for an easy goal.
"I had the puck in the corner and saw (Jonathan) Cheechoo," Michalek said. "I tried to pass it to him but it went all the way to Carle, who shot it. I was there for the rebound."
Smith picked off Kiprusoff's clearing pass to Andrew Ference and slapped in an easy goal three minutes into the third period to make it 3-1. Kiprusoff stopped Brown's shot and failed to see Smith lurking behind Ference.
"We came out flat in our last game but we bounced back with a solid effort," Smith said. "As the game wore on they might have slowed down a bit."
Hannan capped the scoring with an empty-netter in the final minute.
Lombardi gave the Flames a 1-0 lead with a short-handed goal with 2:05 remaining in the first period. Huselius picked up a loose puck and got it Ference, who flipped it up the ice to a streaking Lombardi, who easily beat Nabokov.
Smith and his band, Talking Trees, release their debut album next month. ... Calgary scored its seventh short-handed goal; only Montreal, Detroit and Pittsburgh have more. ... The Sharks have scored at least one power-play goal in 10 of their last 12 games. ... The Flames lost for the first time in 14 contests when leading after the first period.