Neal made it 2-0 at 17:45 of the second on a shot from below the left faceoff circle. Center Ryan Johansen led a 2-on-1 rush up the ice and passed the puck to Neal, who beat Andersen for his second goal.
"[Johansen] just made a great play," Neal said. "He waited and waited until the [defenseman] was out of place and put it on my tape. It was a huge play. Can't say enough about our guys tonight. Everybody battled. We thought we deserved better in their building. To get a win tonight in front of our home crowd is a great feeling."
Ducks center Ryan Kesler scored a power-play goal to make it 2-1 with 13.9 seconds remaining in the second. Defenseman Cam Fowler's shot from the point snuck between Rinne's pads, and Kesler got to the rebound for his third goal.
Weber scored an empty-net goal with 10 seconds remaining to make it 3-1.
"In the third period, I think it was a little bit of a different mindset to get the looks that are available, to make sure that we're layered properly, that we're managing our discipline, we're managing the puck, we're managing the game," Predators coach Peter Laviolette said. "All those things you talk about going into the third when you have a lead. I thought we did a pretty good job of it, and by doing that, we eliminated a lot of the shots and chances."