It was the first game between the two teams since the Sharks knocked the Predators out in the first round of the playoffs last season. Alexander Radulov, with his first NHL goal, and Paul Kariya also had goals for the Predators (5-3-1-0), who have won five of their past six games.
Milan Michalek, Patrick Marleau and Mark Bell replied for San Jose (7-4-0-0).
Bell opened the scoring and added to San Jose's league-leading power play at 11:21 of the first period. With Nashville's Marek Zidlicky in the penalty box, Bell scored from in close.
The Predators answered less than a minute later as Radulov beat Sharks goalie Vesa Toskala with a hard wrist shot from inside the right circle to make it 1-1.
The Predators took a lead on a tip-in by Hartnell before Kariya made it 3-1 at 17:52 of the second period.
Michalek trimmed the lead to 3-2 a little over a minute later.
The Sharks then tied the game in the third period with their second power-play goal of the game. Joe Thornton took a shot from the right side, but the puck was stopped by Nashville goaltender Tomas Vokoun. The puck remained loose in front of the net before Patrick Marleau put it past Vokoun.
Hartnell scored the game-winner at 17:31. After skating down the right side of the ice and taking a shot, Hartnell followed up and fired the rebound from behind the goal and it deflected off Toskala and in.
Notes: Kimmo Timonen played in his 502nd game as a Predator, tying for the team lead in all-time games played for the franchise. . . . Toskala ended a 12-game win streak, the longest in the franchise history of the Sharks. . . . Marleau and Michalek both scored for San Jose, keeping them tied for the team-lead with 12 points each. Nashville's Martin Erat had one assist to extend his points streak to four games.