Will Borgen and Daniel Sprong scored, and Philipp Grubauer made 20 saves for Seattle, the first wild card in the West.
It was the first home playoff win for the Kraken in their second NHL season.
"Everybody had a hand in it," coach Dave Hakstol said. "Everybody contributed. It took a few extra minutes tonight getting into overtime, but through the ebbs and flows of the game, there's always some momentum, there's always some pushes either way. But our group was pretty comfortable in their own skin tonight."
Mikko Rantanen scored twice in the second period to erase a two-goal deficit, and Alexandar Georgiev made 40 saves for Avalanche, the No. 1 seed from the Central Division.
"We didn't get to our game early enough, so that's the big major takeaway for me," Colorado coach Jared Bednar said. "We knew it was going to get tougher and tougher as the series goes on. Space is going to be less available to you, so you have to earn every inch of ice, and we didn't do a good enough job early on in the hockey game taking care of our side of that scenario."
RELATED: [Complete Avalanche vs. Kraken series coverage]
The Kraken lost forward Jared McCann after a hit by Avalanche defenseman Cale Makar at 8:24 of the first period. McCann, who led Seattle with 70 points (40 goals, 30 assists) in 79 games in the regular season, had just been stopped on a short-handed breakaway and was skating into the corner after the puck went into the netting when Makar hit him into the boards.
Makar was originally assessed a major penalty, but it was changed to a minor for interference after video review while McCann was being helped off the ice.
Hakstol said McCann will miss Game 5 and will "probably" be out longer.
"What I saw live and what I watched after the period on video is a late hit, where the puck is out of play," Hakstol said. "I believe the puck is being caught by a fan as [McCann] is being run into the end wall.
"So, late hit, really late, no puck in play, our 40-goal scorer not available for the rest of the game and like I said, not going to be available going forward here."
Makar said he didn't realize the puck had gone out of play.
"I know he got the shot off and then I was just assuming he was going to the corner because it was coming down, so I didn't really look," Makar said. "At the end of the day, I didn't feel like I tried to finish him that hard, but I feel like if I was in that scenario, they would have done the exact same thing.
"I'm not trying to hurt anybody. It's just unfortunate. Tough bounce there and they got the call right, and that's all you can ask for."