Matt Duchene had a goal and an assist to extend his point streak to seven games (seven goals, four assists), and Thomas Harley had two assists for the Stars (35-14-9), who have won seven straight and eight of their past nine. Casey DeSmith made 18 saves.
Ryker Evans scored and Joey Daccord made 28 saves for the Kraken (27-21-9), who are 6-4-0 in their past 10 and play the second of a back-to-back set at the St. Louis Blues on Thursday.
Johnston gave the Stars a 1-0 lead at 18:41 of the first period, deflecting Esa Lindell's right point shot past Daccord blocker side from in front for his 30th goal of the season.
Duchene made it 2-0 when he tipped Harley's wrist shot from the blue line at 1:43 of the second period.
Sam Steel increased the lead to 3-0 at 5:53. Mavrik Bourque sent a wrist shot on net from low in the right face-off circle, and Steel poked the loose puck through the pads of Daccord. Seattle challenged the play for goaltender interference, but the goal was upheld after video review.
On the ensuing power play, Johnston pushed it to 4-0 with his second goal at 6:14. Miro Heiskanen's wrist shot from between the circles deflected in off Johnston's left leg as he battled in front of the net. It was Johnston's 19th power-play goal of the season, setting a new record for the most power-play goals in a single season in Stars history. He is three away from tying the franchise record of 22 set by Dino Ciccarelli with the Minnesota North Stars in 1986-87.
Evans beat a sprawling DeSmith with a slap shot from the left circle at 6:45 of the third period for the 4-1 final.
Kraken defenseman Ryan Lindgren left the game in the first period with an undisclosed injury after colliding with Dallas forward Colin Blackwell.