Kane had two assists, and Martin Jones made 21 saves for San Jose (27-33-4).
"We're here to win games no matter where we are in the standings," Sharks defenseman Marc-Edouard Vlasic said. "And it was nice to win."
Cory Schneider, making consecutive starts for the first time since Oct. 12-14, made 27 saves for New Jersey (25-27-11), which had its three-game winning streak end.
"That's a team we knew that they play north-south, and for us, the minute we started going east-west and trying to get a little cute and trying to make plays in traffic, they went the other way and they made us defend for 40 minutes," Devils coach Alain Nasreddine said.
The Sharks scored three unanswered goals after the Devils scored twice in the first period.
Rookie defenseman Mario Ferraro scored his second of the season with a screen shot from the right point at 2:20 of the second period to cut the New Jersey lead to 2-1.