Jason Williams scored a power-play goal with 5:03 left in a wild third period, leading the Detroit Red Wings to a 5-4 victory over the Vancouver Canucks on Tuesday night.

Pavel Datsyuk scored his first two goals of the season for Detroit (4-4-2) in a third period that featured six goals and three comebacks. Datsyuk's second score put the Red Wings ahead for the first time, but Henrik Sedin scored his second of the game on a 5-on-3 power play to tie it with 7:57 left.

Tomas Holmstrom had a goal and an assist and Niklas Kronwall also scored as the Red Wings snapped a three-game winless skid with their first road win of the season (1-3-1).

Christian Ehrhoff and Mathieu Schneider also scored and Roberto Luongo finished with 37 saves as the Canucks (6-6-0) lost for the first time in four games.

Sedin opened the scoring 30 seconds in, and Ehrhoff scored on a harmless-looking wrist shot at 7:05, ending the night for Detroit goalie Chris Osgood after four shots. Osgood was replaced by Jimmy Howard, who gave up two goals but also made several spectacular stops among his 20 saves for the win.

Vancouver led 2-1 after 40 minutes before things got crazy in the third period.

Kronwall tied it less than 4 minutes in, skating around his check at the point and snapping it short side past Luongo, who was tangled with Holmstrom.

Schneider, playing just his second game for the Canucks after offseason shoulder surgery, restored the lead just over a minute later, wiring a power-play slap shot from the top of the faceoff circle over Howard's glove.

Datsyuk tied it again exactly 1 minute after that, cutting inside on Ehrhoff in the high slot and snapping a shot through the legs of Luongo. Datsyuk gave Detroit its first lead 3 1/2 minutes later with a power-play shot that bounced off a stick, off the ice and over Luongo's glove.

Sedin scored his second on a 5-on-3, but Howard made a great save off Mason Raymond just before the second penalty expired, and Williams won it after a pretty cross-ice feed from Valtteri Flippula left him with an empty net.

Pulling Osgood seemed to spark the Red Wings, who peppered Luongo after that.

Luongo threw out the right pad to stop Henrik Zetterberg on a breakaway midway through the first period, stopped Nicklas Lidstrom from the in tight at the side of the net on the same shift, and after the ensuing scramble in tight had Kronwall's point shot deflect off his mask while lying down in the crease.

Luongo, coming off a shutout of Edmonton Sunday, also made a sprawling pad save off Todd Bertuzzi after a nice backdoor pass from Valtteri Filppula just 3 minutes in, and made a nice glove save off Flippula 3 minutes later.

Holmstrom finally beat him with 4:03 left in the first, but only after Canucks defenseman Shane O Brien lost his stick and used his hand to shovel the puck right to Datsyuk in the slot. He quickly fired across to Zetterberg for a 2-on-0 down low, and Holmstrom tapped his team-leading sixth goal into an empty net.

NOTES: Canucks C Ryan Johnson was carried off the ice on a stretcher early in the second period after sliding headfirst in the end boards. Johnson, who lost his balance as he tried to step around Lidstrom and chase down his own dump-in, was taken to a hospital for further observation, but a spokesperson said he was alert and had full movement. ... Canucks D Kevin Bieksa had three assists, but was in the penalty box when Datsyuk scored his second goal. ... Detroit sat out C Darren Helm and RW Patrick Eaves, replacing them with LW Brad May and LW Justin Abdelkader.