Quarterback Ryan Fitzpatrick threw two touchdown passes and Antonio Cromartie scored on a 59-yard interception return in the waning seconds of the first half in a 28-18 win over the Giants Saturday in the annual preseason game for the New York bragging rights.

After struggling in place of the injured Geno Smith in the first two preseason games, Fitzpatrick hit 9 of 14 passes for 127 yards. He threw an 18-yard touchdown pass to Eric Decker and added a 24-yarder on a screen pass to Zac Stacy as the Jets (2-1) showed balance on offense.

Rashad Jennings scored on a 1-yard run for the Giants (1-2), whose first-team offense has produced 10 points in 12 preseason possessions. Eli Manning (12 of 16 for 90 yards) was having a good half until Cromartie stepped in front of James Jones and scored with 6 seconds left in the half.

More from FoxSports

Coaches Todd Bowles and Tom Coughlin rested most of their starters after the first half.

Punt returner Walter Powell supplied the biggest highlight of the second half, returning a punt by Robert Malone 54 yards for a touchdown in the third quarter.

Josh Brown kicked a 48-yard field goal for the Giants on the opening possession of the second half. Ryan Nassib threw a 6-yard touchdown pass to Jerome Cunningham and a 2-point pass to Julian Talley with 7:31 to play.

The teams will play again in a regular-season game on Dec. 6.

The Jets did more on both sides of the ball than the Giants. They established a running game, picking up 67 yards on 14 carries in the first half.

The Giants were limited to 37 yards on 14 carries and their only drive of significance was a 14-play, 85 yard drive that was kept alive by two Jets penalties.

The Giants' defense once again had trouble on crossing patterns and it had a major blown coverage on the screen pass to Stacy. He caught it and there was nothing in front of him but turf.

Jets first-round draft pick Leonard Williams sustained a knee injury in the first half and did not return.

The No. 6 overall pick out of Southern California is expected to be a major part of Bowles' defense. He has been starting in place of Sheldon Richardson, who is suspended for the first four games of the regular season after violating the NFL's substance abuse policy.