It was a rough night for the Colorado Avalanche.
First they learned that captain Joe Sakic would be lost for maybe three more months, then they got a feel for just how good the Detroit Red Wings are.
The Avalanche played a near-perfect game, but even near perfect isn't enough to derail the NHL's top team.
"I thought we played a great game. It's disappointing, certainly," Avalanche coach Joel Quenneville said after the 4-2 loss. "We did everything we wanted to do except win the game."
It's easy to say that someone new steps up for Detroit every game, except Valtteri Filppula took the honors for the second straight night. Filppula scored two goals, as he did on Wednesday, and Dominik Hasek made 22 saves for the seemingly unstoppable Red Wings (28-7-3).
They have 11 wins in December, 13 in 15 games, and one regulation loss since Nov. 22. Detroit has allowed an NHL-low 84 goals.
"We're playing really good team defense," captain Nicklas Lidstrom said. "We are limiting scoring chances, and our goaltending has been solid. We are playing so well defensively that we can be patient on the other end."
In other NHL games, it was Florida 5, Atlanta 3; Philadelphia 4, Toronto 1; Montreal 5, Tampa Bay 2; Ottawa 5, the New York Islanders 2; Pittsburgh 4, Washington 3 in overtime; Nashville 4, Columbus 3; Anaheim 2, Edmonton 1; Minnesota 3, Phoenix 2; and Vancouver 5, Calgary 3.
Filppula gave Detroit a 2-0 lead with 2:55 left in the first period, but Cody McLeod scored his first NHL goal 92 seconds later and Marek Svatos got the Avalanche even with 14:04 left in the second.
Jiri Hudler broke a 2-2 tie with 9 minutes left in the second period when his slap shot from the right circle beat Peter Budaj over his left shoulder.
The Avalanche had been 15-3 at home, including five straight victories.
"We found a way to win the game," Detroit coach Mike Babcock said. "We didn't have nearly the energy we normally have. We played a good team that is very comfortable at home."
That makes it even worse for the Avalanche, who performed exactly as they would've hoped.
"I thought if we played like that we'd have better results," Quenneville said. "They're a dangerous team."
Sakic will be out eight-to-12 weeks following hernia surgery on Friday.
"It's disappointing," forward Ryan Smyth said, "but collectively we have to figure out a way through this together and all step up."
At Philadelphia, Joffrey Lupul scored two goals and Marty Biron made 34 saves for Philadelphia, which snapped a season-high six-game losing streak.
Jeff Carter and Danny Briere also scored for the Flyers.
Mike Richards earned an assist on Lupul's second goal to stretch his point streak at home to 16 games, tying a team record set by Bobby Clarke in the 1975-76 season.
Mats Sundin scored for the Maple Leafs, who dropped their second straight game and fifth in six. They finished their seven-game road trip 2-3-2.
At Tampa, Fla., Andrei Markov and Andrei Kastsitsyn scored 24 seconds apart early in the third period, and Cristobal Huet had 28 saves for Montreal.
Maxim Lapierre, Guillaume Latendresse and Alex Kovalev also scored for the Canadiens.
Vinny Prospal and Jan Hlavac scored third-period goals for the slumping Lightning, who have lost eight of 10.
At Ottawa, Jason Spezza scored a power-play goal for his 300th NHL point and Dany Heatley had two assists to reach 50 points this season, leading the Senators.
Daniel Alfredsson scored his 22nd goal and Martin Gerber made 24 saves for Ottawa.
Bill Guerin scored twice for New York, which played without No. 1 goalie Rick DiPietro (knee). Wade Dubielewicz made 32 saves in his third start of the season.
Nathan Horton scored two goals for the first time since last March to help Florida end an 11-game skid in Atlanta.
Ilya Kovalchuk scored his NHL-leading 30th and 31st goals in the third period for the Thrashers, but Jay Bouwmeester sealed Florida's victory with an empty-net goal with 56 seconds remaining.
Mark Recchi scored his fifth goal in nine games with Atlanta.
At Pittsburgh, Sergei Gonchar made up for two misplays by scoring in overtime after Darryl Sydor had tied it late in the third period, and the host Penguins rallied to beat Washington.
Sydor scored his first with Pittsburgh in 31 games with 2:16 left in regulation. Gonchar won it 1:33 into overtime.
Pittsburgh captain Sidney Crosby had two assists, giving him 17 points in 10 career games against Alex Ovechkin - nine of them Penguins victories. Ovechkin has four goals and 10 points against Pittsburgh.
At Nashville, Tenn., Ville Koistinen's first NHL goal was a winner for the Predators at home. Jason Arnott, Alexander Radulov and Jordin Tootoo also scored for Nashville.
Kris Beech and David Vyborny had power-play goals for the Blue Jackets.
It was the 300th win for both the Predators and Barry Trotz, marking the 18th time a coach has won 300 games with an NHL team.
At Glendale, Ariz., Niklas Backstrom made 46 saves for Minnesota, which bounced back quickly from an 8-3 loss in Dallas on Wednesday.
Eric Belanger, Brian Rolston and Mark Parrish scored for Minnesota.
Phoenix got goals from Joel Perrault and Enver Lisin.
At Edmonton, Alberta, Doug Weight scored a tiebreaking goal with 3:39 left to lift Anaheim.
Corey Perry also scored for the Ducks, and Marty Reasoner had the lone Edmonton goal.
The Ducks (19-15-5) are 4-0-1 since defenseman Scott Neidermayer returned to the team. The Oilers dropped their fourth straight.
At Vancouver, British Columbia, Henrik Sedin scored the go-ahead goal late in the second period and Taylor Pyatt added an insurance goal 6:59 into the third for the host Canucks.
Craig Conroy and Matthew Lombardi scored 1:54 apart to tie the game in the second period for the Flames.