John Gibson made 31 saves for the Ducks (26-31-8), who failed to win three in a row for the first time since the first three games of the season.
"Our [penalty kill] didn't get the job done," Ducks forward Carter Rowney said. "We didn't score any goals either to stay in the fight."
Zacha gave New Jersey a 1-0 lead at 17:06 of the first period. Ducks forward Sonny Milano was in the penalty box for tripping Miles Wood when Jesper Bratt passed the puck from the goal line to Zacha on the opposite side for a one-timer.
"We could've had a little better of a start," Anaheim coach Dallas Eakins said. "Keeping the puck out of our net on the penalty kill was a problem tonight."
Rowney was in the penalty box for holding center Nico Hischier when the Devils took a 2-0 lead at 3:48 of the second period on another pass by Bratt to Zacha for a one-timer from the left face-off circle.
"They've got such good chemistry together, and you see them out there producing," Hischier said of Bratt and Zacha. "They're playing with a lot of swagger and it's just fun to watch them. They've got to keep it going. They push the team the way they play."
Schneider made 16 saves in the second period. The Ducks had two breakaways, but Rickard Rakell shot wide at 6:21 and Schneider saved Ryan Getzlaf's attempt at 16:51.
"Up 2-0 late in the second, to make that save and keep it there going into the third, I think it's big for momentum and big for our room here, just to have that confidence," Schneider said. "It's fun to play that role and make important saves again and contribute to a game like that."
Shortly after the Devils killed back-to-back power plays, Hischier redirected Connor Carrick's shot at 13:56 of the third period for the 3-0 final.
"That third goal was huge after killing those penalties," Schneider said.