Timo Meier had a goal and an assist for the Sharks, who won for just the second time in 13 games.
Tomas Hertl, Jasper Weatherby and Nick Bonino also scored. Chicago outshot San Jose 28-19, but only managed a second-period goal by Tyler Johnson.
Kevin Lankinen made 15 saves.
Kahkonen won his second consecutive game after going winless in his first seven starts after coming over in a trade with Minnesota on March 21.