Roberto Luongo makes a save in Tuesday's 5-2 Canucks win. ((LM Otero/Associated Press))

The Vancouver Canucks erupted for four consecutive goals, including three with the man advantage, en route to a 5-2 victory over the Dallas Stars at American Airlines Center on Tuesday night.

Henrik Sedin led the onslaught with two goals and one assist, and Ryan Kesler scored twice as the Canucks (39-24-9) closed to within three points of the idle Calgary Flames in the Northwest Division.

Kesler has racked up four goals and 10 points in his last seven games.

Daniel Sedin contributed a goal and an assist, Pavol Demitra and Sami Salo had two assists apiece.

"They have a good power play," Stars head coach Dave Tippett said. "But we made them look awfully good."

Roberto Luongo was terrific, stopping 35 of 37 shots as Vancouver halted a four-game road losing skid.

"It was a gritty game, and we found a way to get goals," Luongo said. "Sometimes you're not going to get a picture-perfect goal, but you find a way to win."

Brendan Morrison opened the scoring for his 500th NHL point, and rookie James Neal also tallied for the fading Stars (33-32-8), who have lost four games in a row and 4-11-1 since Feb. 21. 

Marty Turco finished with 17 saves.

"It is disappointing," Morrison said. "We have nine games to go, and who knows what can happen?"

'I got hit by the high stick'

Dallas opened the scoring on Morrison's milestone goal 4:44 into the contest, but Kesler and Daniel Sedin replied with power-play goals at 11:06 and 18:27 of the first period, respectively.

Sedin was struck in the mouth by Mark Fistric's stick moments before he notched the go-ahead goal, his 27th of the season, but he still managed to tip Salo's point shot past Turco to make it 2-1. 

"I got hit by the high stick," Sedin said. "But it was nice to score on the power play."

Sedin suffered a bloodied lip, lost a cap and needed multiple stitches in his mouth.

"It was nothing," said Henrik Sedin, Daniel's twin brother. "He's not a baby."

Fistric was assessed a four-minute penalty for high sticking, and Henrik Sedin capitalized by deflecting Kevin Bieksa's shot for a power-play goal 98 seconds into the second period.

Kesler put the Canucks ahead 4-1 just 48 seconds later with his second tally on the night and 23rd overall.

Neal tallied for the Stars at the nine-minute mark before Henrik Sedin completed the scoring with an empty-net goal, his 17th with 17 seconds remaining.

"We got the lead and that was huge," Daniel Sedin said. "We needed a good team effort to win."

The Canucks had lost in eight of their previous nine visits to Dallas.

With files from the Canadian Press