Dan Hamhuis, Mason Raymond and Chris Higgins, into an empty net, also scored for Vancouver, which put forth a strong effort against the defending Stanley Cup champions to stop a two-game losing streak.
|More on Kings-Canucks|
|More NHL coverage|
Justin Williams and Jordan Nolan scored for Los Angeles, which had its five-game win streak end.
Following disappointing 8-3 and 4-2 losses to Detroit and Phoenix, and without center Ryan Kesler (fractured foot), the Canucks were in need of a strong outing to maintain their place atop the Northwest Division.
Vancouver played a gritty, tight-checking game.
Defenseman Andrew Alberts was in the lineup in favor of Keith Ballard (healthy scratch) to provide a physical presence in front of Vancouver's goal.
Canucks newcomer Tom Sestito - picked up on waivers from Philadelphia on Friday - hammered Colin Fraser with a clean check, and then got the better of Nolan in an ensuing first-period fight.
The 6-foot-5 Sestito drew an extended round of applause from the crowd after the bout.
Kevin Bieksa, who returned after missing two games with a groin injury, also had a strong game for Vancouver's defense.
Up front, the Canucks were led by the top line of Daniel Sedin, Henrik Sedin and Alex Burrows, which combined for five points.
With the score tied 2-2 in the second period, the Canucks took control for good on Daniel Sedin's eighth goal of the season.
After a nice pass from Burrows to set up a 2-on-1 break, Henrik Sedin passed to brother Daniel, who waited a second before firing a slap shot low on Jonathan Quick's blocker side.
Hansen gave the Canucks a two-goal cushion just under three minutes later, scooping up a loose puck in the slot and ripping a wrist shot past Quick's glove to snap an eight-game goalless drought.
At the time, the Canucks had four goals on just 16 shots as Quick had an uncharacteristic off night. The Kings goaltender finished with 19 saves.
It is just the third time this season the Kings have allowed more than three goals.
Cory Schneider, making his second consecutive start, rebounded from a puck-handling mishap on Nolan's goal to make some strong third-period stops. He made 28 saves overall.
After Raymond made it 2-1 for Vancouver midway through the second period with a pretty wrist shot past Quick, Schneider had a miscue and the Kings tied it at 2.
The Vancouver goalie got caught wandering behind the net and Nolan wrapped the puck around into the open net for his second tally of the season.
Schneider almost got caught behind his net again in the third period, but Los Angeles couldn't convert.
With the Kings pressing late, Schneider made big pad saves off Dustin Penner and Slava Voynov.
Higgins scored his fifth of the season with Quick on the bench for an extra attacker in the final minute.
The Canucks led 1-0 after the first period on a pretty goal from defenseman Hamhuis, who scored for the first time since opening night.
After a Kings turnover, Henrik Sedin and Burrows made pretty passes to set up Hamhuis, who scored into the open net.
Williams tied the game on a power play early in the second period, ripping a one-time slap shot past Schneider for his second of the season.
Anze Kopitar got an assist to extend his points streak (two goals, seven assists) to five games.
Canucks forward David Booth had his first point in five games this season, assisting on Raymond's goal. Booth missed the start of the season with a groin injury. ... Kings forward Jeff Carter failed to extend his five-game goal-scoring streak, and Mike Richards had his four-game point streak ended.