Chris Higgins scored in the fifth round of the shootout of a game marked by a nasty line brawl off the opening faceoff and the Vancouver Canucks defeated the Calgary Flames 3-2 on Saturday night.

Higgins beat Flames goalie Karri Ramo through the five-hole as Vancouver snapped a three-game losing streak.

All 10 skaters on the ice dropped their gloves 2 seconds into the first period, resulting in eight game misconducts and leaving both teams with short benches the rest of the game.

Ryan Kesler, with a goal and an assist, and Yannick Weber scored for the Canucks. Roberto Luongo stopped 31 shots in his return from an injury.

Mark Giordano and Matt Stajan scored in regulation for the Flames, who got 31 saves from Ramo.

Stajan scored his seventh of the season, and first in 17 games, by chipping a backhand up and over Luongo at 4:01 of the third period to give the Flames a 2-1 lead.

With the crowd at Rogers Arena getting antsy, Vancouver's 24th-ranked power play got something going at 11:48 when Weber ripped his second of the season past Ramo to tie the score.

The teams traded chances in a dogged overtime but neither could find a winner.

After a strong December, the Canucks came into Saturday with just one win in their past nine (1-5-3), including a recent three-game road trip that saw Vancouver get outscored 11-1 — thanks in large part to 9-1 loss against the Anaheim Ducks.

With the Flames also struggling to just two wins in their past 11, Calgary coach Bob Hartley sent out his fourth line to start Saturday's game.

Vancouver's John Tortorella countered with his fourth line and a full-line brawl started just 2 seconds after Canucks defenseman Kevin Bieksa took the opening faceoff against Calgary forward Kevin Westgarth.

When the dust settled, Canucks forwards Dale Weise and Kellan Lain — who was making his NHL debut — along with Bieksa and fellow defenseman Jason Garrison were given fighting majors and game misconducts. The same went for Westgarth, Calgary forward Blair Jones and defensemen Ladislav Smid and Chris Butler.

Vancouver's Tom Sestito and Calgary's Brian McGrattan also got fighting majors, plus 10-minute misconducts. McGrattan was cut in his fight with Sestito and his blood was splattered on the ice.

Tortorella screamed at Hartley from the Canucks bench, furious that his counterpart put out Calgary's tough guys to start the game in a period that saw scrums after almost every whistle and a total of 188 minutes in penalties.

Lost in all the mayhem was Luongo's solid first period in return from injury. After missing nine of the past 10 games because of groin and ankle issues, Luongo stopped Calgary's T.J. Brodie on a 2-on-1 before stopping Lee Stempniak on a breakaway.

At the other end, Ramo was fortunate to keep things scoreless as both Alex Burrows and David Booth missed wide open nets from in close. Vancouver's Alexander Edler also hit the post seconds after a big stop on Henrik Sedin.

As if the first period didn't have enough action, television cameras showed the fiery Tortorella — who has been on his best behavior since joining the Canucks in the summer — attempting to get into the Flames' locker room during the intermission.

The teams got down to playing hockey after that, trading goals early in the second period.

Giordano ripped his seventh of the season by Luongo at 1:37 as Calgary's 28th-ranked power play found a way past the league's No. 2 penalty kill.

Kesler got that one back at 3:50, redirecting a nice pass from Zack Kassian at 3:50 for his team-leading 18th of the season.

Vancouver's Brad Richardson sent a shot off the crossbar later in the period as both teams appeared to tire with the short benches as a result of the fight-filled first.

Luongo then made a glove save on Calgary's Mikael Backlund from in close to keep things tied heading into the second intermission.

To make matters worse for Vancouver, Henrik Sedin seemed to be laboring badly and didn't come out to start the third period.

Notes: Burrows returned to the Canucks' lineup after missing 20 games with a broken jaw. ... The Canucks won the first two meetings of the season against the Flames, 5-4 in overtime on Oct. 6 and 2-0 on Dec. 29. Both games were played in Calgary. ... The Canucks visit the Edmonton Oilers on Tuesday. ... The Flames travel to San Jose to take on the Sharks on Monday.