Stenlund gave Utah a 2-1 lead at 7:35 of the second period, tapping the puck into another open net off a backhand centering pass from John Marino on a rush.
Montour tied it 2-2 at 18:54 when Eberle's centering pass from along the right boards deflected inside the left post off his skate.
Schwartz appeared to give the Kraken the lead at 8:09 of the third period, but a video review showed that the puck never crossed the goal line.
However, Kakko did make it 3-2 at 10:29. He scored on a wraparound at the right post after Mikhail Sergachev's clearing pass around the end boards hit the side of the net.
Utah responded with several scoring opportunities down the stretch, but Grubauer was able to shut the door to preserve the lead.
“[There was] a little chaos there at the end, but it was good,” Grubauer said. “Guys are throwing themselves into shots and they're blocking shots, getting pucks out. I think that's the right way, and sometimes you have to play that way. So, yeah, [it was a] good win.”
Tolvanen added an empty-net goal at 18:51 for the 4-2 final. He has 21 goals this season, the first time in his NHL career he has reached the 20-goal mark.
“I'm glad to get an opportunity here,” Tolvanen said. “The past two years ... I feel like I've been inside of my head, trying to get to 20. I think last year I hit the [16th] goal with 15 games left in the season and I started thinking too much, so it's nice to get it done.”
NOTE: Utah forward Liam O'Brien (undisclosed) left the game in the third period. There was no update postgame.