Daniel Sprong had a goal and an assist, and Lucas Raymond had three assists for the Red Wings (18-16-4), who have won two of their past three games. Lyon made 24 saves.
"Our three most recent losses, we were literally tied 2-2 in the third in all three and found a way to lose," Red Wings coach Derek Lalonde said. "In this situation we’re 2-2, gave up the third and hung in there, and found a way to get a win in regulation. Never easy to win in this league, especially on the road. So, we'll certainly take it."
Fabian Zetterlund, Justin Bailey and Alexander Barabanov scored, and Mario Ferraro had two assists for the Sharks (9-26-3), who have lost nine straight. Kaapo Kahkonen made 26 saves.
"It's not quite 60 minutes yet for us," San Jose coach David Quinn said. "It's certainly a lot better but I'm tired of being 'just better.' That doesn't matter. You want to win hockey games, and right now we're not."