
Welcome back, Brock Purdy! For the first time in 2025, the 49ers topped 40 points in a blowout victory over Arizona. The game opened with a huge special teams play from Skyy Moore, and in the blink of an eye, the 49ers had a 7-0 lead after one play on offense. The 49ers never looked back after that. Sunday’s game was filled with rarities; the Cardinals tied a franchise record with 17 penalties, and Jacoby Brissett set the NFL record for completions in a single game. Speaking of rarities, the 49ers caused three turnovers, including two interceptions. Add it all up, and it was a comfortable victory for the 49ers, who now sit seventh in the NFC for a playoff spot following Detroit’s loss Sunday night.
Let’s look at the snap counts and grades, according to Pro Football Focus.
Offense
Quarterback
Brock Purdy 50 (61.9)
Mac Jones 5 (61.5)
Purdy returned to the lineup after an extended absence and looked comfortable from the get-go. Sure, the 49ers defense and special teams handed the 49ers offense short fields to work with, but any expected rust was shaken off on Purdy’s first touchdown throw to George Kittle. Purdy checked out of a run call pre-snap into a shotgun look and dropped a great throw into Kittle’s arms for the second touchdown of the game.
With 200 passing yards, Purdy added three touchdowns, a 7.7 YPC average, and a passer rating of 133.5. PFF dinged Purdy for two TWP on Sunday. One was a near interception on a pass intended for Ricky Pearsall over the middle, where the safety baited the throw by faking down on Kittle before falling back, and the second was a throw outside of the pocket to Demarcus Robinson that should have been thrown away.
All in all, you can’t ask for more from the franchise QB after missing many games. The offense will need to roll the rest of the way for the 49ers to keep their playoff hopes alive. Sunday was an encouraging first step.
Running Back
Christian McCaffrey 39 (86.8)
Kyle Juszczyk 29 (66.3)
Brian Robinson 16 (53.6)
Three more touchdowns for Christian McCaffrey on Sunday. Two rushing and one through the air. Even more encouraging was the 6.2 YPA on 13 attempts. The first 20-yard run of the season belongs to McCaffrey, also. The Cardinals’ defense was extremely banged up, and Sunday was the perfect opportunity for the 49ers to get their running game going. McCaffrey gained 52 yards after contact, forced three missed tackles, and had three ten-plus yard runs.
Wide Receiver
Ricky Pearsall 41 (51.1)
Jauan Jennings 41 (68.8)
Demarcus Robinson 27 (62.3)
Kendrick Bourne 13 (55.5)
Ricky Pearsall returned to the lineup, and his impact went beyond the box score. Sure, he caught one pass for zero yards, but the attention paid to the natural separator allowed the passing game to open up for others. Jauan Jennings led all receivers with six targets and four catches for 54 yards in his return to the scene of his ejection in last year’s season finale. Better days are ahead for Pearsall as he gets back into the swing of things after his PCL injury.
Tight End
George Kittle 48 (87.6)
Luke Farrell 16 (57.7)
Jake Tonges 5 (60.5)
The highest graded offensive player goes to George Kittle, who continues his hot streak with six catches, 67 yards, and two more touchdowns. Kittle has four touchdowns in his last four games on 23 catches. It’s good to see every offensive weapon on display for more than a drive for the 49ers.
Offensive Line
Dominick Puni 53 (70.0)
Colton McKivitz 52 (79.3)
Jake Brendel 50 (60.9)
Trent Williams 50 (81.8)
Ben Bartch 30 (61.8)
Spencer Burford 30 (29.4)
Matt Hennessey 5 (60.0)
Austen Pleasants 5 (59.9)
A clean sheet for Trent Williams as he finished with an 88.9 pass-blocking grade on 30 pass-blocking snaps. Jake Brendel and Colton McKivitz allowed two pressures apiece, but graded out fairly well, with Brendel finishing with a 71.3 pass-blocking grade and McKivitz finishing at 68.3. The real story is the left guard situation. Spencer Burford and Ben Bartch split snaps evenly on Sunday, but PFF was not kind to Burford. With a 29.4 offensive grade and a 28.7 run blocking grade, Burford took all 30 of his snaps at left guard, but Bartch moved over to right guard for five of his snaps as Dominick Puni (one pressure and hurry allowed) took three snaps at right tackle. What’s the method behind the madness of the rotation? I’m not sure, but Kyle Shanahan could provide some insight into the decision during the week leading into the Carolina game.
Defense
Defensive Line
Bryce Huff 57 (65.8)
Sam Okuayinonu 54 (54.7)
Keion White 50 (54.5)
Kalia Davis 42 (49.7)
Alfred Collins 37 (60.4)
Jordan Elliott 36 (59.9)
CJ West 34 (62.3)
Robert Beal, Jr. 7 (65.0)
The 49ers defense generated 13 pressures, nine hurries, and four QB hits, but failed to sack Jacoby Brissett, who dropped back to pass 57 (!!) times. The good news? PFF credited Kalia Davis with a team-high four pressures, with Bryce Huff generating three. Huff led the team with two pressures in true pass sets and was tied with Jordan Elliott with a 21.4% win rate. Alfred Collins was the highest-graded defensive lineman as a run defender at 68.0. Fellow rookie CJ West added a defensive stop. The rookies will have to continue to grow and step up down the stretch for the 49ers. Keion White added two pressures and a batted pass.
Linebacker
Dee Winters 62 (43.4)
Curtis Robinson 54 (75.4)
Tatum Bethune 24 (62.1)
Nick Martin 14 (49.9)
Luke Gifford 2 (89.9)
Oh dear. Well, the good news is rookie Nick Martin got his first significant action on Sunday and contributed four tackles, earning a 78.9 tackling grade. The bad news? Tatum Bethune got rolled up on, which the 49ers fear may be a high ankle sprain. The injury is the butterfly effect of Renardo Green’s roughing penalty, which extended the Cardinals’ drive. Curtis Robinson led the team in tackles and will step in for Bethune during his time out.
Secondary
Renardo Green 71 (64.6)
Malik Mustapha 70 (52.3)
Ji’Ayir Brown 70 (70.7)
Deommodore Lenoir 66 (86.7)
Upton Stout 41 (72.1)
Jason Pinnock 39 (38.3)
Darrell Luter, Jr. 19 (68.0)
Chase Lucas 11 (42.9)
Marques Sigle 9 (67.3)
The 49ers forced three turnovers on Sunday, and secondary members created all three. Malik Mustapha and Deommodore Lenoir caught two interceptions, while Upton Stout ripped the football out at the goal line for a fumble. The defense was dinged for 452 yards, but many of those were garbage-time yards. Moving forward, this is the 49ers’ defense and pass defense. The key will be getting a key stop or two or a timely turnover so the offense can cash in.
