Sauce Gardner of the Jets reacts after the Lions scored a touchdown...

Sauce Gardner of the Jets reacts after the Lions scored a touchdown late during the fourth quarter at MetLife Stadium on Sunday. Credit: Jim McIsaac

Devastating defeats have become common for the Jets lately, and Sunday’s 20-17 loss to the Lions might have been the most crushing.

The defense played terrific football for 58 minutes, and after Zach Wilson led a go-ahead touchdown drive, the Jets were one stop away from ending a two-game losing streak

That all changed with less than two minutes left.

On fourth-and-1, Jared Goff threw a 51-yard catch-and-run touchdown pass to tight end Brock Wright that stunned the Jets and the MetLife Stadium crowd.

The Jets had a chance to tie it, but Greg Zuerlein missed a 58-yard field goal as time expired after Robert Saleh didn’t use all three of his timeouts on the final drive.

“We’re devastated,” cornerback D.J. Reed said. “Everybody’s devastated, but the defense, we really put this on our chest.”

The Jets needed their highly rated defense to keep Detroit out of the end zone but couldn’t do it.

The defense was missing top pass rusher Quinnen Williams because of a calf injury, but to that point, the unit hadn’t allowed a touchdown. The Lions’ lone TD was a 47-yard punt return by onetime Jet Kalif Raymond in the first quarter.

Just after the two-minute warning, the Lions had a fourth-and-1 at the Detroit 49, and the Jets, playing for a run, were totally caught off guard. The secondary went with the receivers, who ran slow-developing routes to the far side of the field. Wright, meanwhile, blocked for a second and then leaked out to the left side.

Goff hit Wright at about the Jets’ 47. The tight end, who dropped a pass earlier in the drive, had lots of running room and scored the go-ahead TD with 1:49 to go.

“We played really good the whole game,” linebacker C.J. Mosley said. “It’s really bad that one play changed the whole game.”

It might have changed the whole season for the Jets, but that’s how this critical stretch has gone. The Jets are 0-3 in December, and their last five losses have been one-score defeats.

“It’s been a lot of missed opportunities throughout this season,” Garrett Wilson said. “Hopefully we can look back on it and be in the playoffs and feel a little better about it. We got to earn that. Up to this point, we didn’t earn that.”

The Jets had all three timeouts as they started their final drive from their 25. Zach Wilson was sacked on first down and fired an incompletion on second down. On third-and-19, he connected with Garrett Wilson for a 22-yard gain to the Jets’ 38. Saleh didn’t use a timeout, which proved costly.

Two plays later, Wilson and Wilson hooked up again for a 10-yard gain to the Jets’ 48. Saleh could have used a timeout there, too, but again did not.

Saleh burned his first timeout after Wilson was sacked on second down, but there were only 19 seconds left by then.

On fourth-and-18 from the Jets’ 40 with 14 seconds left, Wilson rolled out to the right and desperately threw it across his body toward the middle of the field. Elijah Moore caught the 20-yard pass and was tackled near the Jets’ sideline with one second left.

Saleh called timeout and gave Zuerlein a chance to force overtime. His attempt wasn’t close, though, and the Jets walked off with another frustrating loss and one timeout left.

“I can probably look back at it and say we could’ve used one, for sure,” Saleh said.

Garrett Wilson said of the final drive, “I’m sure we’re going to watch the film tomorrow and be like, ‘Wow, we could have handled it better.’ ”

Wilson gave the Jets a 17-13 lead with 4:41 remaining on a 1-yard touchdown pass to tight end C.J. Uzomah, who had caught a 40-yard touchdown pass in the second quarter. But the defense couldn’t make it hold up.

“It hurts,” Mosley said, “but we made our own bed. We got to fix it.”

It was the Jets’ fifth loss in their last seven games and was a hit to their playoff chances. They are 7-7 and in ninth place in the AFC, one game behind the seventh-seeded Dolphins and tied with the Patriots, who own the head-to-head tiebreaker over the Jets.

The Jets will host the Jaguars on Thursday night before finishing at Seattle and Miami.

“Everyone knows that we got to win out,” Saleh said.

Zach Wilson, who replaced the injured Mike White, had some shaky moments running the offense for the first time in four games. He didn’t do enough to win his starting quarterback job for good, but he did make some big plays.

He finished 18-for-35 for 317 yards, two touchdowns and one interception, which led to a field goal by Michael Badgley. Wilson, showing some accountability — something he didn’t do a month ago in New England — said he “forced it” and “shouldn’t have thrown it.”

“I put our defense in a bad situation there,” Wilson said. “You see how those three points come back to bite us. I’ve got to take care of the football.”

The Jets haven’t declared who will start Thursday’s game, but it doesn’t seem likely that White will be cleared for contact by then after suffering fractured ribs at Buffalo in Week 14.

More on this topic

More Jets

SUBSCRIBE

Unlimited Digital AccessOnly 25¢for 5 months

ACT NOWSALE ENDS SOON | CANCEL ANYTIME