Andrei Kuzmenko had a goal and two assists, and Martin made 31 saves for the Canucks (14-15-3), who ended a three-game losing streak at home.
"There's no quit in the room, that's for sure," Vancouver forward J.T. Miller said. "It's mentally brutal and taxing to have to come from behind all the time. We'd totally rather have the lead, but [it] seems when we're down a couple, we play really good."
Daniel Sprong scored twice, Oliver Bjorkstrand had a goal and an assist, and Jones made 32 saves for the Kraken (18-10-4), who haven't defeated their closest geographic NHL rival in six games.
Seattle got goals from all four forward lines, but it wasn't enough.
"We're here to win a hockey game and we didn't do that, so that's disappointing," Kraken coach Dave Hakstol said when asked about his scoring depth. "We'll look at not only line combinations, but exactly what we did in the third period, and there's a couple of things we have to do better. We have to do better when we've got a two-goal lead. That's a game we should be able to close out."
Jared McCann put Seattle ahead 1-0 at 7:01 of the first period with a shot from the blue line that caught Martin leaving his net expecting a dump-in. It was McCann's third straight game with a goal and team-leading 16th of the season.
"I was cheating on the rim, and I haven't caught myself doing that before but it happened," Martin said. "The blooper goal at the beginning, [stinks] to be on that end of it, but time and time again, this team has battled to keep me in games."
Lane Pederson tied it 1-1 at 17:17 on a 2-on-1 backdoor pass from Pettersson.
Bjorkstrand put Seattle back ahead 2-1 on a 2-on-1 with Jaden Schwartz at 3:28 of the second period, and Sprong scored 10 seconds later at 3:38 to make it 3-1. Sprong deflected Adam Larsson's point shot up over Martin's shoulder from the slot, breaking the Kraken record of 17 seconds for the fastest two goals.