But he struggled at times, narrowly avoiding turnovers and relying on his receivers to make the bulk of the yardage.
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.