Jayden Schwartz and Jared McCann each had a goal and an assist for Seattle (2-2-2). Philipp Grubauer made 17 saves, but left midway through the third period. Martin Jones relieved him and made one save.
"We played a rock-solid 60 minutes", Kraken coach Dave Hakstol said. "We were confident from the drop of the puck. We knew they'd have a little push in their home building, and they did in the first couple of shifts, but we settled things down. We played a real good 60 minutes."
Bowen Byram had a goal and assist for Colorado and Evan Rodrigues scored the Avalanche's other goal. Pavel Francouz made 35 saves.
"Sloppy. Poor execution really the whole night", said coach Jared Bednar. "That's why we didn't get any shots. Tough to get shots when you can't execute. ... Sloppy. Spent the whole night defending."
Seattle upsets slumping Colorado; Grubauer leaves with injury
After a goalless first period, Schwartz put Seattle in front just 1:38 into the second, one-timing a feed from Jordan Eberle in the slot.
22 seconds later, McCann doubled the Kraken's advantage when he poked a loose puck in front after Francouz couldn't clear it out from in front.
"He's an aggressive goalie, so I thought he was going to come out a little bit more and I was just going to float it into the top corner there", McCann said. "But he stayed kind of back into his net and made a great read."
Rodrigues cut it to 2-1 as he one-timed a feed from Valeri Nicushkin for his first goal with Colorado.
"It's not the result we wanted, but good to get that one out of the way and hopefully they can start piling [up] now", he said.
The game was tied less than seven minutes into the third period as Byram scored shorthanded on a three-on-two rush from the top of the right faceoff circle.
"I did get to score a goal, but at the end of the day, we're just not playing good enough to win right now", he said. "There's a lot more that goes into the game than scoring. I feel like I didn't have my best game, so i'm not too worried about that right now."
Grubauer left the game at the next television timeout and was replaced by Jones.
"He [said something didn't feel right] after the goal and then obviously the next whistle he went down the tunnel", Hakstol said. "I don't have an update [for you] right now."
Kuhlman then won it, driving past Kurtis MacDermid on the right side and slid the puck five-hole on Francouz for his first goal of the season.
"I think it starts with a good wall play there", he said. "[Schwartz] makes a good play, putting the puck into space, lets me skate into it. He was kind of draped on me there. I usually like to get that puck to the far post, kind of beat the goalie over there, but saw a little opening and was able to put it in the net."