Christian McCaffrey grabbed a touchdown for the 12th consecutive game as the San Francisco 49ers saw off the New York Giants 30-12 for a 3-0 start to the season.

Brock Purdy threw for two touchdown passes – to Ronnie Bell and Deebo Samuel – as he extended his winning run as a starter in the regular season to eight from as many starts.

But he struggled at times, narrowly avoiding turnovers and relying on his receivers to make the bulk of the yardage.

Giants 49ers Football
San Francisco 49ers quarterback Brock Purdy passes the ball during the first half against the New York Giants (Godofredo A Vásquez/AP)

Although the 49ers offense was not particularly smooth, they were too good for the Giants – without the injured Saquon Barkley – as the defence finished the job.

Giants quarterback Daniel Jones struggled to make any headway downfield as he threw for just 137 yards and an interception.

The Giants’ only scores came from an eight-yard Matt Brieda touchdown run and a pair of first-half field goals.

McCaffrey’s four-yard touchdown run, which opened a 17-3 lead in the second quarter, equalled Jerry Rice’s franchise record of touchdowns in successive games and is just three short of the NFL record.

The 49ers have now won 13 consecutive regular season games as they moved to 3-0 for only the second time in 25 seasons.