Jets kicker Greg Zuerlein celebrates with Thomas Hennessy after kicking...

Jets kicker Greg Zuerlein celebrates with Thomas Hennessy after kicking the game-winning field goal against the Giants at MetLife Stadium on Sunday. Credit: Errol Anderson

Garrett Wilson thought the game was over, until it wasn’t.

“The mindset was ‘we lost the game’ to ‘oh, wow, they messed up,’ ” he said. “That’s the reality of it.”

Sauce Gardner thought the game was over, too, until it wasn’t.

“I took the tape off [my injured hand],” he said. “Pretty soon, I had to get it taped again. That’s on me for not having all the faith at the end.”

Forgive the two young Jets stars for not believing, because no one else at MetLife Stadium on a raw, rainy, sometimes ridiculous afternoon could either.

“This one definitely stings,” the Giants’ Saquon Barkley said.

So it went in the two home locker rooms at either end of the hallway on Sunday after the Jets secured a 13-10 overtime victory over the Giants on a day marked mostly by awful offense and stellar defense on both sides.

Greg Zuerlein kicked the winning 33-yard field goal with 6:09 remaining in the extra period, sending home the sparse crowd that remained until the end of what officially was a Giants home game.

When it was over, the Jets were 4-3, with a three-game winning streak, and the Giants were 2-6 and mostly out of realistic playoff contention.

The Giants’ situation is further complicated by the fact that starting quarterback Daniel Jones still is out with a neck injury and backup Tyrod Taylor left Sunday’s game in the second quarter with a rib injury that sent him to the hospital.

That left undrafted rookie Tommy DeVito to try to guide the Giants. He did run 6 yards for the team’s only touchdown, but mostly he simply was asked not to mess things up. He passed only seven times, completing two.

The Giants finished with minus-9 net passing yards, a franchise-record low.

The teams combined to go 4-for-34 on third-down conversions and punt 24 times. (They went 0-for-18 on third-down conversions and punted 15 times in the first half, the latter the most in the NFL in a half since 1981.)

“Just sloppy ball all the way around,” Jets coach Robert Saleh said. “They never ask how; they ask how many.”

It appeared all was lost for the Jets when, with the Giants leading 10-7, Kayvon Thibodeaux recorded his third sack, taking down Zach Wilson at the Jets’ 26-yard line on a fourth-and-10 with 1:26 left.

The Giants soon faced a fourth-and-1 from the 17. With the Jets having no timeouts, the Giants could have ended the game by picking up a first down, but coach Brian Daboll opted to try a 35-yard field goal.

Graham Gano, who is playing through a knee injury, missed wide left — his second miss of the game — giving the Jets the ball at their 25 with 24 seconds left.

Daboll said he had sought a six-point lead to force the Jets to score a touchdown.

“They’d have 24 seconds with no timeouts, still have to drive it the length and our defense was playing well all game,” he said.

“I have no excuses,” Gano said. “That’s not who I am. I’m sure some people want me to sit up here and make excuses. I’ve got none. I’ve got to play better.”

Said Zuerlein, “He is a phenomenal kicker and I think he’s dealing with some stuff physically. It’s never good when you’re not feeling the best. He makes those kicks 100 times out of 100 times.”

Zach Wilson, who mostly struggled, awoke just in time, hitting Garrett Wilson and Allen Lazard with consecutive 29-yard completions. (A declined offsides penalty on Thibodeaux helped preserve the clock for the Jets.)

After Wilson spiked the ball with one second left, Zuerlein made a 35-yarder to tie it as the regulation clock expired.

The Giants got the ball first in overtime and did nothing with it. The Jets then got a turn from their own 39-yard line.

The big play came on a third-and-5 from the Giants’ 45. Wilson threw to Malik Taylor, who was pushed down by Adoree’ Jackson for a clear pass interference penalty.

Jackson said he thought the ball was overthrown and should have been ruled uncatchable.

“Everybody was saying the ball was like five yards behind,” he said. “But I can’t cuss a ref out. It ain’t going to do me no good. Just line up and play again.”

Jackson never did get to line up again. The penalty resulted in a 30-yard gain to the Giants’ 15. Zuerlein then kicked the winner.

Barkley finished with 36 carries for 128 yards as the Giants all but abandoned any notion of passing in the second half.

Wilson was 17-for-36 for 240 yards, a 50-yard catch-and-run touchdown pass to Breece Hall and two lost fumbles — one on a sack by Thibodeaux and the other on a botched snap from third-string center Xavier Newman.

The Jets led 7-3 after Hall’s touchdown in the first quarter, then the Giants went ahead 10-7 when DeVito faked to Barkley on a third-and-goal from the 6 and ran it in with 8:59 left in the third quarter.

“If we would’ve lost this, I don’t know how we could have slept at night,” Garrett Wilson said. “That was a team that I thought the score should have been way crazier than that.”

Said Gardner: “I was looking forward to this one. How many passing yards they have again?” Minus-9. “We did our job.”

OFFENSIVE NUMBERS

24

Total punts and total first downs

4-for-34

Teams' combined third-down efficiency

15

Total penalties

4.0

Jets' yards per play

2.8

Giants' yards per play

2

Tommy DeVito completions

-9

Giants' team passing yards

More football news

SUBSCRIBE

Unlimited Digital AccessOnly 25¢for 5 months

ACT NOWSALE ENDS SOON | CANCEL ANYTIME ONLINE