Duclair put San Jose ahead 1-0 at 3:39 of the first period when he scored five-hole on a breakaway after a Columbus turnover at center ice.
Werenski tied it 1-1 at 15:16 on a snap shot from the top of the right circle that beat Kahkonen up high for his first goal since Oct. 20.
Kirill Marchenko put Columbus ahead 2-1 at 16:24 on a shot from the right face-off dot.
"We knew that we were giving up too much, the breakaways and stuff," Sharks defenseman Mario Ferraro said. "In the first intermission we got together, we knew we had to play tighter."
Gaudreau appeared to score at 1:18 of the second period, but the Sharks successfully challenged for offside.
"Johnny was really good tonight," Blue Jackets coach Pascal Vincent said. "Just unfortunate for him, that he didn't get rewarded. But at the end of the day, knowing Johnny, winning the game is what matters the most."
Dmitri Voronkov increased the Blue Jackets' lead to 3-1 at 7:14 of the second period, scoring off a rebound in front.
Duclair scored his second of the night to make it 3-2 at 7:33, taking a centering pass from Zetterlund on the rush.
Zetterlund tied the game 3-3 with a power-play goal at 15:29 when Addison set him up with a cross-ice pass for a one-timer from the left circle.
"I saw him through the seam and threw a fake and threw it over to him," Addison said. "He's got a great shot and a great release, so he's going to hit that 10 times out of 10."
NOTES: Jenner scored the second-latest go-ahead goal in Blue Jackets history, behind only Patrik Laine (59:52 on Feb. 12, 2022 against the Montreal Canadiens). ... Jenner has scored in three straight games.