Matt Duchene scored twice and had an assist, and Filip Forsberg had a goal and two assists for the Predators (33-20-4), who have outscored their opponents 14-2 during a three-game win streak.
Adam Henrique scored, and John Gibson made 26 saves for the Ducks (27-24-9), who lost for the third time in the past four games and are 2-5-0 in the past seven.
Anaheim played without forward Trevor Zegras who was a late scratch with an upper-body injury. Earlier in the day, forwards Jakob Silfverberg (undisclosed) and Ryan Getzlaf (lower body) were placed on injured reserve.
"It's hard when you're missing a lot of guys, especially [Zegras] and [Getzlaf] who bring that offensive side to us," Ducks forward Troy Terry said. "It's hard. That's a good hockey team that we just played, a team that doesn't give you a whole lot to work with offensively. At the end of the day, we had our chances. I had my chances and I've got to score."
Duchene made it 1-0 at 10:53 of the first period with a power-play goal. It was set up by a pair of cross-ice passes, ending with Forsberg finding Duchene at the right post.
Forsberg gave the Predators a 2-0 lead at 11:41 of the second period off a pass across the top of the crease from Duchene.
"[Being linemates with Duchene all season] definitely helps and it builds chemistry in practice," Forsberg said. "I think we think the game pretty much the same way. We both try to create offense for one another. We both can pass, both can shoot, so I think it's something we've got to keep doing."