Robert Deutsch-USA TODAY Sports

Jamaal Williams scored three rushing touchdowns and the visiting Detroit Lions achieved a three-game winning streak for the first time since 2017 by surprising the New York Giants 31-18 on Sunday in East Rutherford, N.J.

Williams rushed for 64 yards on 17 carries. Jared Goff passed for 165 yards, while Justin Jackson rushed for 66 yards on nine carries. Amon-Ra St. Brown caught seven passes for 76 yards for Detroit (4-6).

Giants quarterback Daniel Jones passed for 341 yards and a touchdown but was also picked off twice. Jones also rushed for 50 yards and a touchdown, but star running back Saquon Barkley was held to 22 yards on 15 carries.

Wan'Dale Robinson caught nine passes for 100 yards for the Giants (7-3). New York's defense gave up a season high in points.

The Lions drove 11 plays and 64 yards on their first possession, which ended with Michael Badgley's 24-yard field goal.

New York answered with an 11-play, 75-yard touchdown drive. Jones completed three passes of 16 or more yards and finished it off with a 3-yard scoring run. Graham Gano missed the extra point.

Aidan Hutchinson intercepted Jones' pass in the second quarter and returned it 20 yards to the Giants' 18-yard line. That set up Williams' first touchdown of the game, a 4-yard run.

Detroit drove 68 yards on its final possession of the half, which Williams finished off with a 1-yard plunge. A 32-yard pass from Goff to St. Brown was the big play on the drive.

Jackson's 36-yard kickoff return to open the second half put Detroit in good field position. The Lions cashed in once again on another Williams 1-yard run.

The Giants drove 67 yards to cut Detroit's lead to 24-12. Matt Breida scored on a 3-yard run with 13:21 remaining. Gano once again missed the extra point.

Hutchinson recovered a fumble to give the Lions the ball at New York's 33-yard line. That led to D'Andre Swift's 4-yard touchdown run.

Jones hit Richie James for a 9-yard touchdown pass with 4:20 remaining. The two-point conversion pass attempt failed, leaving the score at 31-18.

More must-reads:

TODAY'S BEST
Giants All-Star pitcher suffers setback in recovery from injury
Watch: Juan Soto's first multi-homer game as a Yankee
'Ain't good enough': Draymond Green claims Celtics must 'win it all' or it's a 'failure'
Raptors expected to flip former NBA champion during the offseason
MLB insider reveals Mets' massive extension offer that Pete Alonso turned down
Celtics legend provides update after gruesome finger injury
Bulls hire former NBA head coach as top assistant
Chiefs move on from young running back
20-year MLB veteran working out, unsure about playing future
USA Hockey names HC for 2025 4 Nations Face-Off and 2026 Olympics
Key Knicks forward ruled out for Game 7 vs. Pacers
Pacers' Pascal Siakam leads team to Game 6 win vs. Knicks
Watch: Matt Duchene's 2OT winner sends Stars to conference final
Scottie Scheffler shoots improbable 66 after warming up for PGA Championship in a jail cell
Report: Tua Tagovailoa away from Dolphins amid contract chatter
Nuggets star has worrying comment about latest injury
Paul Skenes makes incredible Wrigley Field history in second-career MLB start
Giants rookie CF to undergo season-ending labrum surgery
Yankees' Juan Soto reacts to Hal Steinbrenner contract talk
Late goal sends Panthers to Eastern Conference Finals