Mathieu Garon stopped Markus Naslund's backhand move to clinch the win as the Kings overcame deficits of 2-0 and 3-2 to win the match-up of 20-victory teams.
Frolov gave the Kings the win as he deked to his forehand and tucked the puck between Alex Auld's legs.
Hours after being left off the U.S. Olympic team, Jeremy Roenick had a goal and an assist in the first period for the Kings, snapping an eight-game point drought with his first multiple-point game since scoring twice in the season opener.
Roenick, who started the game with a big hit on Brendan Morrison five seconds in, scored the Kings' first goal and set up Derek Armstrong for the second.
Craig Conroy, who was named to the American Olympic squad, scored the other Los Angeles goal shorthanded as the Kings, who have won four of their last five, moved into a tie with Dallas for top spot in the Pacific Division.
Naslund, Daniel Sedin and Steve McCarthy scored in regulation for the Canucks, who lost consecutive home games for the first time, falling to 13-1-2 at GM Place.
It was also the second straight game Vancouver blew a two-goal lead and gave up the tying goal shorthanded before losing in overtime.
Garon, who also stopped Daniel Sedin and forced Todd Bertuzzi to shoot wide in the shootout, made two saves in regulation and three more in overtime.
Auld made 24 saves before the shootout, including breakaway stops on Frolov in the second period and Demitra late in the third. He stopped Demitra again in the shootout and made a nice save on Joe Corvo, but couldn't stop Frolov again.
Roenick was playing his fourth game since being moved up to the top line with Demitra and Conroy. Vancouver D Kevin Bieksa played his first NHL game after being recalled from Manitoba of the AHL earlier in the day and took a roughing penalty 10 seconds in. ... The Kings placed LW Jeff Cowan on the injured reserve list before the game with a groin injury that has forced him to miss four games already.