The ball left James Morgan's right hand, zipped through the thick MetLife Stadium air and somehow landed in Kenny Yeboah's hands for a touchdown as time expired.

The New York Jets went wild, celebrating the 49-yard Hail Mary toss. And then Josh Adams ran in the 2-point conversion to secure the 31-31 tie with the Philadelphia Eagles in a preseason finale that was played without most of the teams’ starters Friday night.

CLICK HERE FOR MORE SPORTS COVERAGE ON FOXNEWS.COM

But that didn't diminish what was a stirring — and entertaining — comeback by the jubilant Jets.

"Oh, it was crazy," running back Ty Johnson said. "Yeboah? Come on, now. That was just crazy."

The start was delayed 30 minutes because of strong storms that moved through the New York and New Jersey area. Air bubbles formed in spots on the rain-drenched turf a few hours before kickoff, but there appeared to be no issues during the game.

Most of the projected starters for both teams sat out — including quarterbacks Jalen Hurts for Philadelphia and Zach Wilson for New York — after the squads held joint practices at the Jets’ facility on Tuesday and Wednesday.

New York was trailing 24-10 when Johnson had a 3-yard run up the middle for a score as time expired in the third quarter.

Morgan, who replaced starter Josh Johnson after halftime, connected with Yeboah for a 21-yard touchdown with 6:59 left to bring New York within a point.

With no overtime in the preseason, coach Robert Saleh opted to go for a go-ahead 2-point conversion. But Zech McPhearson intercepted Morgan’s toss in the end zone to keep it a one-point game.

The Jets got the ball back with 1:38 to go and a chance to win. On third-and-7, Morgan completed a pass to Daniel Brown for a first down. But the tight end had the ball ripped out of his hands by Michael Jacquet, who ran it in for what appeared to be a win-sealing 32-yard touchdown.

"It’s a turnover and you are supposed to stay down," Eagles coach Nick Sirianni said of Jacquet scoring instead of taking a knee. "We didn’t do a good job communicating that to him."

New York got the ball back with 59 seconds remaining and Morgan, Yeboah and Adams sent the Jets and their fans home happy — with a tie.

"I'm very happy for James and Kenny," Josh Johnson said. "Those two young guys just to have them have that moment, a lot of guys don't get to experience that."

CLICK HERE TO GET THE FOX NEWS APP

QUICK STARTS

Joe Flacco started for Philadelphia and threw two touchdown passes in the first half against his former team. Flacco, who spent last season as the backup to Sam Darnold, found Boston Scott down the right sideline for a 49-yard touchdown.

Josh Johnson, who could end up being the backup to Wilson, matched Flacco with an impressive opening series. He found Lawrence Cager on a fade for a 2-yard TD to tie it.

The Eagles came right back on Kenneth Gainwell's 5-yard run to put Philadelphia up 14-7. The 10-play, 78-yard drive was helped by a personal foul penalty on Bryce Hall, projected to be one of New York's starting cornerbacks.

"You know guys livelihoods are at stake, so you want to help them achieve their goal," Flacco said.

After Matt Ammendola's 31-yard field goal made it 14-10, Flacco tossed his second touchdown pass in the closing seconds of the half, He found J.J. Arcega-Whiteside for 42 yards, helped by poor tackling attempts by Isaiah Dunn and Elijah Campbell in coverage.

Flacco was 13 of 16 for 188 yards and the two scores. Johnson finished 7 of 8 for 73 yards and the TD.

STATS

Morgan, trying to make the roster in his second season, finished 13 of 23 for 158 yards and the two TDs to Yeboah, along with an INT. ... Yeboah had four catches for 100 yards. ... Eagles RB Elijah Holyfield, son of former heavyweight boxing champ Evander Holyfield, ran for 60 yards on 16 carries and caught three passes for 22 yards. ... Nick Mullens, who replaced Flacco to start the third quarter, was 10 of 14 for 98 yards.

WILSON SITS

Saleh said Wednesday he expected his starters, including Wilson, to play a series or two but opted to sit them mainly because of injuries to the offensive line.

"It just wasn't worth it to bring him out," Saleh said.

Wilson, the No. 2 overall pick, finished his first NFL preseason by going 15 of 20 for 191 yards and two touchdowns with no interceptions and a 137.7 quarterback rating. He played six series in two games, leading the Jets to scores on four of them.

BARELY HURTS

Hurts' preseason consisted of just two series, going 3 of 7 for 54 yards against Pittsburgh in Week 1.

The second-year QB was set to play last week against New England, but was scratched shortly before the game with a stomach ailment. He returned to practice this week and had two solid days in the sessions with the Jets.

INJURIES

Jets: Rookie CB Brandin Echols injured his right shoulder late in the first half and didn't return.

UP NEXT

Eagles: open regular season at Atlanta on Sept. 12.

Jets: kick off their season at Carolina against former QB Sam Darnold on Sept. 12.