SANTA CLARA — Here is how the 49ers (8-4) graded in Monday night’s 20-9 home win over the Carolina Panthers (6-6):
PASS OFFENSE: D+
Interceptions on three consecutive drives? Yikes! Did Brock Purdy’s Week 1 toe injury impact his mechanics? Both he and coach Kyle Shanahan disputed that, saying Purdy’s timing was off, his passes were late or floated. Purdy’s longest completion came after that interception spree, and it was a 25-yard strike to Kittle, who finished with a team-high 78 yards. Christian McCaffrey caught all seven of his targets (53 yards) to take the NFL lead with 81 overall receptions. Purdy was not sacked, which will be a tough feat to replicate Sunday in Cleveland against Myles Garrett and the Browns. Jauan Jennings’ opening-drive touchdown was a nice diversion from last week’s Brandon Aiyuk contract chaos.
RUN OFFENSE: B
Christian McCaffrey hammered his original NFL employer for 89 yards on 24 carries, and he essentially sealed the win with a 12-yard touchdown run, his seventh in seven games. But McCaffrey also had a fumble that Colton McKivitz recovered and there was another potential fumble that officials negated. Brian Robinson averaged 5.7 yards per carry (2 yards more than McCaffrey) and totaled 40 yards. The Niners’ 38 carries were one shy of their season high, and the 147 yards were their third-highest mark. Purdy had six runs for 16 yards, and Ricky Pearsall had a 2-yard end-around that set up fourth-and-1.
PASS DEFENSE: A-
Ji’Ayir Brown came to Purdy’s rescue with two interceptions, including a clutch one in the end zone following the Panthers’ first pick of Purdy. Clelin Ferrell recorded the game’s only sack with 3:26 remaining, but Bryce Huff’s speed rush led to two hits on Bryce Young and two Panthers’ holding penalties. Upton Stout nearly had an acrobatic interception. Renardo Green got beat by Tetairoa McMillan for the Panthers’ lone touchdown and the first-round pick’s fifth as a rookie.
RUN DEFENSE: B
As unimpressive as the Panthers’ offense was, it did average 5.3 yards per carry. But Rico Dowdle had just six carries (38 yards) and Chubba Hubbard had three (16 yards). Malik Mustapha had a team-high seven tackles. Curtis Robinson had just three in his starting debut as the middle linebacker in place of the injured Fred Warner and Tatum Bethune. Dee Winters had a good hit on Young on the opening drive.
SPECIAL TEAMS: A-
Matt Gay flawlessly filled in for an injured Eddy Piñeiro by making both field-goal attempts (47 and 27 yards) and both point-after kicks while doing OK on five kickoffs (two touchbacks). Skyy Moore, he of the 98-yard kick return to open the previous game, delivered a 43-yarder that set up the 49ers’ first field goal. Rookie Nick Martin forced a fumble (the Panthers recovered) and had two tackles.
COACHING: A-
Kudos to Robert Saleh’s embattled and injury-withered defense for not only stopping the Panthers but limiting them to just three points after the three interceptions off Purdy. Offensively, Kyle Shanahan orchestrated another impressive opening drive (15 plays, 72 yards) and was faring well on the second until Purdy’s interception spree.