Matt Ellis also had a goal, Brian Rafalski added two assists, and Dominik Hasek made 13 saves for the Red Wings. Matt Cooke and Daniel Sedin scored for Vancouver, and Robert Luongo stopped 36 shots.
Sedin made it close with a power-play goal 1:47 into the third period. With Henrik Zetterberg off for hooking, Sedin backhanded a loose puck past Hasek from the slot.
In the second, Holmstrom scored twice in the second period.
Holmstrom gave the Red Wings a 2-0 lead with a power-play goal 2:23 into the period. Rafalski's slap shot from the point deflected off the shaft of Holmstrom's stick and into the net.
Cooke put Vancouver on the board at 5:33 when his slap shot from the high slot deflected in off of Detroit's Aaron Downey.
Holmstrom's seventh goal restored the Red Wings' two-goal lead with 4:20 left in the period when. He converted a cross-crease pass from Zetterberg after Pavel Datsyuk stole the puck from defenceman Willie Mitchell behind the net.
Ellis opened the scoring with 2:26 left in the second period, sliding a loose puck into an empty net as Luongo was being knocked down by teammate Lukas Krajicek.
Notes: Vancouver D Sami Salo made his season debut. He fractured his wrist during a scrimmage in training camp. ... Detroit RW Dallas Drake missed the game because of a hairline fracture of his cheek bone. ... Canucks C Ryan Kesler is from the Detroit suburb of Livonia. ... Vancouver C Rick Rypien left in the second period because of a hand injury. ... Zetterberg has at least a point in all 10 games this season and leads the NHL with 18 points on seven goals and 11 assists.