Here is how the 49ers (6-4) graded in Monday night’s 38-10 win over the Arizona Cardinals (4-7) in Mexico City:
PASS OFFENSE: A

Jimmy Garoppolo’s passport will reflect a nice trip to Mexico that featured four touchdown passes, two apiece to Brandon Aiyuk and George Kittle. Garoppolo was not sacked and completed 20-of-29 passes for a 131.9 rating. Aiyuk’s only catches were for touchdowns. Kittle’s scores came in 39- and 32-yard, hard-charging fashion. Christian McCaffrey was a 100-percent reliable target (7-of-7, 67 yards), and Deebo Samuel had seven catches (57 yards). No other 49ers caught a pass, including Danny Gray, who remains without one in seven games.
RUN OFFENSE: A

The 49ers averaged 5.7 yards per game, with 28 carries for 159 yards. It was a tale of two backs in two halves. Christian McCaffrey did more damage as a receiver and had just 39 rushing yards on seven carries, five of which came before halftime. All but one of Elijah Mitchell’s carries came after halftime and he finished with 54 yards on nine rushes. Simply put, the run blocking was evident and dominant. Samuel’s 39-yard touchdown run was keyed by blocks from Brandon Aiyuk, Tyler Kroft, Trent Williams and Jake Brendel, who hustled downfield to take out Budda Baker.
PASS DEFENSE: A-

It started in sketchy fashion as DeAndre Hopkins racked up seven catches for 77 yards, mostly against Charvarius Ward, who briefly exited with a groin issue. But Hopkins had only two catches for 14 yards after halftime. The 49ers did not allow a passing touchdown, and the worst play was a 47-yard catch-and-run by Greg Dortch that saw multiple missed tackles. Colt McCoy wasn’t anywhere near as magical as last season’s victory over the 49ers as Kyler Murray’s injury replacement. McCoy was 24-of-34 for 218 yards and got sacked by Nick Bosa, Kevin Givens and Fred Warner. Sam Womack III preserved the second-half shutout with a late interception in the end zone. Jimmie Ward’s fifth career interception helped set up the 49ers’ second touchdown. Bosa had three hits along with raising his sack total this year to 10 1/2.
RUN DEFENSE: A-

The 49ers allowed James Conner to run for the Cardinals’ only touchdown, but he gained just 42 yards on 14 carries. McCoy had three carries for six yards, and the Cardinals obviously could have used a more mobile Murray to speed into open space, though much didn’t exist this game. Ward delivered a team-high 10 tackles and Dre Greenlaw had nine before exiting with a fourth-quarter injury.
SPECIAL TEAMS: A

Mitch Wishnowsky took advantage of the high altitude and soft-landing conditions to average 45.8 net yards on four punts – and he had a tackle. Womack and Tarvarius Moore excelled on those coverage units. Ray-Ray McCloud cleanly fielded all four of the Cardinals’ punts in slick conditions and returned two for 13 yards.
COACHING: A

Blanked in the first quarter for the fourth time this season, Kyle Shanahan’s offense was playing possum, then unleashed five touchdowns in a seven-drive span. DeMeco Ryans’ defense pitched a second-half shutout for a third straight win. Brian Schneider’s special teams were on fire, too. This made last week’s chilly Colorado sojourn seem worth it. The 49ers are tied for first place, and they’re on a three-game win streak, with a three-game homestand next.