TEMPE, Ariz. -- Connor Ingram made 21 saves, and the Arizona Coyotes ended a four-game losing streak with a 1-0 victory against the San Jose Sharks at Mullett Arena on Friday.

Matias Maccelli scored the go-ahead goal in the second period for the Coyotes (14-13-2), whose losing streak followed five straight wins. Ingram’s shutout was his third of the season, tied with Thatcher Demko and Tristan Jarry for most in the NHL.

“We knew what we were facing, we had a ton of respect for them … they had 14 points out of 20 in their past 10 games,” Arizona coach Andre Tourigny said. “With our losing streak, we wanted to break that … so it was a good bounce-back game for us.”

SJS@ARI: Ingram posts 21-save shutout

Kaapo Kahkonen made 23 saves for the Sharks (9-18-3), whose four-game point streak (3-0-1) ended. San Jose had two goals overturned on Arizona challenges.

“It’s tough to get two goals called back, but I think we did a good job of giving them pressure,” San Jose forward Anthony Duclair said. “I thought they were two pretty good goals, but obviously we just came up short there.”

Arizona is 5-1-0 in its past six at home.

“I thought we came out well, we were a little inconsistent, but overall, those are the games you’ve got to win, the close ones,” Coyotes forward Jack McBain said. “`Ingy’ played great and a couple of calls went our way.”

Maccelli made it 1-0 at 14:45 of the second. J.J. Moser’s shot from the left point deflected off Nick Bjugstad in the low slot, and Maccelli put in the rebound while going to his knees.

“It was an unfortunate bounce on the goal, it goes right to their guy and there’s nothing anybody can do there,” Kahkonen said.

SJS@ARI: Maccelli fires home rebound to open the scoring

The Sharks appeared to tie it 1-1 at 7:40 of the third, but William Eklund’s goal off a Luke Kunin rebound was successfully challenged by Tourigny that Kunin interfered with Ingram.

San Jose appeared to tie it again on a Mikael Granlund goal at 3:59 of the third, but Tourigny challenged successfully when it was determined Duclair was offside.

"We knew watching both [calls] on replay there was a chance they'd get overturned, but you never know, its tough to predict," Sharks coach David Quinn said. "We kept playing, but it was just one of those nights. We didn't have it. You could feel before the start of the game there wasn't any energy in the room, but we managed to hang around." 

Granlund had 12 points (two goals, 10 assists) during a six-game point streak that ended.

Duclair, who plays on a line with Granlund, said, “He’s playing unbelievable. I definitely owe him a few goals after tonight.”

Tourigny is 3-for-3 on challenges this season and 8-for-12 in three seasons. Because his view often is obstructed on the bench, he relies on video coach Hunter Cherni to decide whether to challenge or not.

“He studies all the calls in the League and what's going on,” Tourigny said of Cherni. “He has many angles to look at, he has the competence to do it … he sounded pretty confident and he was right.”

NOTES: San Jose forward Nico Sturm (upper body) didn’t play after he was injured against the Winnipeg Jets on Tuesday. He also won’t play against the Colorado Avalanche on Sunday. … This was the third game this season when the Sharks didn’t have a power play; they had 12 in their previous five (three goals). … McBain returned from a lower-body injury and played 7:08, going 4-for-8 on face-offs, in his first game since Nov. 9. Tourigny limited his time in hopes he could play against the Buffalo Sabres on Saturday in the second game of a back-to-back.