Nikolaj Ehlers also scored for Winnipeg, and Laurent Brossoit made 37 saves. Vladislav Namestnikov had two assists.
The Jets earned their fifth consecutive win and improved to 9-0-2 in their last 11 games overall.
“We know we have a chance,” Ehlers said after the Jets won their fourth consecutive game when trailing 1-0 early. “We get behind by one and we have that feeling of, ‘We’re still going to win this game.’ That’s a pretty good feeling to have, which is something we haven’t had for a while.”
Mason McTavish scored in the first period for the Ducks, and John Gibson made 24 stops. The Ducks dropped to 4-18-1 in their last 23 games.
It was Winnipeg’s second victory at Anaheim in the last month, after the Jets’ Kyle Connor was injured in a knee-on-knee hit by the Ducks’ Ryan Strome on Dec. 10. Connor remains out, and Strome was held out because of an upper-body injury.
Schmidt broke a tie with his first of the season 1:57 into the third. Trailing behind a three-on-two break, Schmidt took a pass from Dylan Samberg and sent a wrist shot past Gibson on the goaltender’s glove side.
“I think [Samberg] makes a great play at the blue line to allow that play to happen,” Schmidt said. “[Perfetti] was giving me a little grief for looking him off but you know what, redemption came his way about five minutes later. … It wasn’t a clean start for us, but I think we had a really good third period.”
Perfetti added his power-play goal for his 11th at 13:03, helping Winnipeg improve to 10-7-3 when giving up the first goal.
The Ducks dropped to 1-5-1 on an eight-game homestand that concludes Sunday against Detroit.
“I already talked to [the team] about it,” Ducks head coach Greg Cronin said. “We have to try and win Sunday. The home games, obviously our crowds have been impressive. People show up every game, want to see wins and want to drive home feeling good about themselves.”
McTavish put the Ducks in front 15:51 into the first. Alex Killorn delivered a backward pass into the slot and McTavish flipped a backhanded shot over Brossoit’s right shoulder for his 11th of the season.
The Jets tied it 1-1 in the second. Ehlers took advantage of traffic in front of the net created by teammate Gabe Vilardi and tucked a shot inside the left post for his 13th of the season at 7:57. Mark Scheifele delivered his team-leading 26th assist.
The Ducks had a prime chance to take the lead early in the third but Killorn’s wide-open shot was snagged by Brossoit near the right post. Winnipeg scored the go-ahead goal 24 seconds later.
“It starts with our goaltending; a fantastic duo,” Schmidt said of the team’s success, especially of late. “Our centers and forwards deserve more credit, too. They have done a great job with the change in our system this year and finding that we can still get offense by being smart in our zone.”
Anaheim’s Max Jones left because of an upper-body injury in the first.
Up next for the Ducks: vs. Detroit at Honda Center on Sunday.