The Montreal Canadiens won a milestone game thanks to a rare offensive explosion from one of their role players.
Maxim Lapierre scored the final three goals of the game, leading the Canadiens to a 5-2 victory over the Florida Panthers for their NHL-best 3,000th regular-season win.
"There are nights like this," Lapierre said. "There are night you're alone with the goalie and nothing goes in and other nights where it seems the puck always finds your stick at the right time. That's what happened tonight."
The hat trick was the first of Lapierre's three-year NHL career. The centre came in with four goals in 31 games this season.
"For a defensive player, for a guy that brings energy to the game, it's always fun to contribute in other ways," Canadiens coach Guy Carbonneau said. "At the start of the year, he was getting rid of the puck a little too much, he didn't want to make mistakes. Now he's playing with more confidence."
Alex Kovalev and Tomas Plekanec also scored for Montreal, which is 4-0-1 in its last five games. Carey Price stopped 25 shots for the Canadiens.
Elsewhere in the NHL it was: Calgary 2 Minnesota 1; New York Rangers 5 New York Islanders 4; San Jose 3 Dallas 1; Colorado 5 Nashville 1; and Columbus 2 Los Angeles 0.
At Sunrise, Fla., Michael Frolik and David Booth scored for the Panthers, who have lost three straight after tying a franchise record with seven wins in December.
"Every team goes through this," Florida defenceman Nick Boynton said. "And we've proven to ourselves that we can win. We've just got to get back to it. It's not rocket science. ... We've got some guys that are playing their hearts out and some guys that aren't. For us to win, everybody's got to be playing hard."
Florida's Craig Anderson, making his first start in six games, gave up four goals on 20 shots. He was replaced by Tomas Vokoun after Lapierre's second goal at 2:40 of the third period.
The Canadiens annual holiday visit to Florida was played in front of a largely pro-Montreal crowd. Chants of "Go Habs, go!" erupted throughout the game. There also was a chant of "Carey, Carey!" after Price made a nice save in the third period.
"I thought the crowd was great," Florida coach Pete DeBoer said." It was a great atmosphere, outstanding. If we can have crowds like that every weekend, I don't care who they're cheering for. It was a great atmosphere in the building."
Lapierre got a break - and a little help from teammate Steve Begin - when he broke the 2-all tie at 16:01 of the second.
Lapierre tried to beat Anderson on a wraparound attempt with his forehand, but Anderson moved to his right to make the save. As Lapierre grabbed the rebound and skated behind the net to the other side, Anderson couldn't move to his left because his stick was being blocked by the post.
Lapierre then lifted a high backhand into the open net.
"It was a great play by Steve," Lapierre said. "He told me the goalie wasn't going to be there in time. He changed the play I had in my mind; I was going to go for a pass to the point. He said there was no goalie, so I went for the shot."
Before Lapierre scored, the Panthers had a chance to break the 2-all tie with a 5-on-3 for 1:39, but couldn't get the puck past Price.
Lapierre's second goal came after he took a drop pass from Guillaume Latendresse and fired a wrist shot from the top of the faceoff circle. The shot went through Boynton and beat Anderson low to the glove side.
That goal prompted DeBoer to change goalies.
"We need a spark," he said. "We need a save. We had some pressure down in their end and they come down and score a goal. It's not a great goal to give up at that point in the game. I think Andy knows that. At that point, you re reaching to try and get some kind of spark out of your team.
Lapierre completed the hat trick with an empty-netter with 6.2 seconds left. He scored after stealing the puck away from defenceman Bryan McCabe in the Florida zone.
"I thought, I don't think I'm going to have too many chances to do that in my career," Lapierre said. "I told myself, 'I have to catch him, I have to take it away from him,' and it worked out."
Flames 2 Wild 1
At Calgary, Eric Nystrom scored a short-handed goal in the third period, lifting the Flames over Minnesota.
Rangers 5 Islanders 4
At New York, Markus Naslund scored one of the Rangers' four goals in a wild third period, and Henrik Lundqvist made the lead stand up in a comeback win over the Islanders.
Sharks 3 Stars 1
At Dallas, Evgeni Nabokov stopped 28 shots to win his 20th game of the season, Ryane Clowe had a goal and an assist for San Jose.
Avalanche 5 Predators 1
At Denver, Cody McLeod had the first two-goal game of his career and John-Michael Liles added a goal and an assist as Colorado beat Nashville
Blue Jackets 2 Kings 0
At Los Angeles, rookie Steve Mason made 24 saves for his fourth career shutout, Kris Russell scored during a power play in the second period and Columbus beat the Kings.