Brent Burns added a goal for the Sharks, who won their fourth straight. Antti Niemi stopped 30 shots in his 21st win of the season.
Patrick Maroon scored for the Ducks, who lost for the first time in December and missed a chance for a club-record, seven-game winning streak on the road. Frederik Anderson made 20 saves but lost for the second time in 11 games this season.
Anaheim, which entered the game as the NHL's top team, also had a 13-game point streak stopped.