The San Jose Sharks are back in the win column.

San Jose had not won since Dec. 16, but the Sharks put that to rest with a hard-fought 6-3 road win over the Vancouver Canucks, taking an early 2-0 lead and hanging on despite Vancouver cutting the deficit down to one goal three different times.

“For the most part, we’ve really fought that mental toughness part of it, of getting put on our heels,” Sharks coach Ryan Warsofsky said. “We’re starting to realize what winning hockey looks like as far as how you need to play with certain habits. When you don’t have the momentum, how you need to play, and when you do have the momentum, how we want to play.

“Our group is growing in that area. It’s not perfect, but we’ve taken some lessons throughout the first 38 games here that we continue to push forward.”

Ryan Reaves opened the scoring for San Jose (18-17-3) with a tap-in of a loose puck at the 6:13 mark of the first period. John Klingberg doubled the lead with a shot from the center of the blue line at 7:55 after a screen from Igor Chernyshov limited the visibility of Canucks goalie Thatcher Demko.

Vancouver (15-19-3) responded with a power-play goal by Linus Karlsson, who tapped in a cross-ice pass from Conor Garland for an easy score to make it 2-1 at 10:04.

The Sharks stretched the lead back to two goals when William Eklund chipped a puck toward the net just outside the crease and it flipped over Demko’s shoulders and into the back of the net.

Vancouver’s Marco Rossi may have made the final contact on the play, but the goal counted just the same.

Rossi scored on another tipped goal very early in the third period, as the puck deflected up over Yaroslav Askarov in the midst of several chips near the crease.

Igor Chernyshov doubled the deficit once more when he scored his first NHL goal five minutes into the third, depositing a power-play shot around Demko’s left pad at the 4:47 mark.

“He’s been amazing on my right wing,” Celebrini said. “He’s a big body, drives plays. He’s had so many chances over the last couple games. It was so nice to see him get one.”

Drew O’Connor brought the Canucks closer one more time with a shorthanded score at the 10:43 mark of the third period.

Macklin Celebrini added another goal for the Sharks at the 16:20 mark of the third with a stunning one-timer from the left circle. It was Celebrini’s second point of the game, giving him 57 this season.

Collin Graf added an empty-netter at 16:55 to seal the bounce-back win for San Jose.

The loss was the first for Demko in 14 games against the Sharks.