Good grief!

Saturday’s “Snoopy Bowl” was supposed to be the final tuneup for the Jets’ offense. But the annual preseason rivalry game against the Giants featured far too many miscues from all four of their quarterbacks.

After Ryan Fitzpatrick, Geno Smith and Bryce Petty each faltered, rookie Christian Hackenberg got the offense back on track in his first taste of preseason action. But the neophyte’s strong outing soon gave way to another Jets QB blunder.

Late in the fourth quarter, the former Penn State star was picked off by safety Andrew Adams. And it didn’t take long for Giants backup quarterback Ryan Nassib to throw an 11-yard touchdown pass to regain the lead for Ben McAdoo’s club in a 21-20 victory.

“That’s something I’ve got to learn from,” said Hackenberg, who has gotten limited reps all offseason as the low man on the food chain. “I can’t do that. Especially not in that field position. It [stinks] but it’s obviously a good learning tool for me.”

Before that, though, the second-round pick was humming. And for a brief moment, it appeared the Jets could have uncovered another option at No. 2. With 12:00 to go in the game, Hackenberg relieved third-string Bryce Petty and immediately went to work. After two short incompletions, he hit tight end Zach Sudfeld on a 16-yarder and then Charone Peake for 26 yards. The delay of game penalty that came next did little to slow down his momentum. Instead, he connected with Robby Anderson on a 27-yard completion before capping his impressive first preseason drive with a 10-yard touchdown pass to Anderson.

advertisement | advertise on newsday

Who needs preseason reps?

“Obviously, you do want to play,” said Hackenberg, who was 6-for-16 for 105 yards, with a touchdown and interception. He finished with a 55.5 QB rating. “But I think, for me, patience is the key and when you’re prepared and you’re able to go out and execute and put what you put in off the field and in the film room together, that feels great.”

The Hackenberg score — which regained the lead for the Jets (17-14) — was a welcome sign after his offseason of erratic practices. And just like that, a new quarterback controversy could be brewing.

By 4 p.m. Tuesday, NFL teams will have to make their initial roster cuts (from 90 to 75 players) before officially settling on their final 53-man roster Sept. 3. That means, the Jets front office will soon have to decide whether to keep four quarterbacks during the regular season. If they don’t, look for Petty or Smith to be shown the door.

On Thursday, the Jets will play their final preseason game at the Eagles but head coach Todd Bowles wasn’t willing to say which of his signal-callers will start.

Jets videos

In two weeks, his team will play for real. But as of now, they don’t appear ready for the regular season. “We’re not close,” Bowles said. “We’ve still got a lot of work to do before opening day.”

It wasn’t all bad, though. Running back Matt Forte (hamstring) and defensive end Muhammad Wilkerson (surgically repaired leg) were impressive in their preseason debuts and the Jets’ first-team defense looked exceptional. The unit dominated Eli Manning in the first half (8-for-13, 52 yards, one interception, one sack, 38.0 QB rating) and prevented the Giants’ starting offense from running a single play in Jets territory.

Fitzpatrick’s 22-yard TD pass to Eric Decker (his first of the preseason) — which was set up by a Darrelle Revis interception — put the Jets up 7-0. But it was a struggle for the first-team offense. With Brandon Marshall (sore hip) and Quincy Enunwa (concussion protocol) ruled inactive, Fitzpatrick looked out of sync. He went 9-for-16 for 76 yards and also fumbled on a sack-strip by former Jets nose tackle Damon “Snacks” Harrison.

His backups fared no better. Smith — who was booed before he even threw a pass — was given a quick hook after only two series. A fourth-quarter Petty pick was returned 73 yards for a touchdown by 264-pound defensive end Kerry Wynn. The interception, with 12:06 left, gave the Giants a 14-10 lead.

Said Petty: “Just a really stupid mistake on my part.”