John Hayden and Eeli Tolvanen scored, and Martin Jones made 33 saves for the Kraken (28-15-5), who are 2-1-1 on a five-game homestand that concludes Saturday against the Columbus Blue Jackets.
"We weren't very good tonight, that's all," Seattle coach Dave Hakstol said. "Our group wasn't good, especially in the middle portion of the game. We had no energy, and that's top to bottom. We didn't make it real hard on them. I'm not taking anything away from them, not in any way, shape or form, but, we didn't have any pace to our game.
"Our puck play was sloppy. Anything that we put into the zone on the forecheck, we had very little speed, [which] allowed for a lot of easy exits for them. I don't want to get into every detail. We weren't very good tonight, bottom line."
Hayden gave the Kraken a 1-0 lead at 5:20 of the first on a redirection of Will Borgen's shot from beyond the right face-off circle.
Lindholm tied it 1-1 at 7:16 when he backhanded Toffoli's feed past Jones.
Toffoli gave Calgary a 2-1 lead at 13:28 on a rebound of Coleman's shot, and Nikita Zadorov made it 3-1 with five seconds left in the first on a one-timer from between the circles.