The streak is over. The San Francisco 49ers won their first game in Cleveland since November 11, 1984. Kyle Shanahan and his offense defeated Jim Schwartz’s defense. Brock Purdy played well in a cold-weather game. The narratives fell one by one with a 26-8 victory over Shedeur Sanders and the Browns. Now, the 49ers enter their bye week at 9-4 with four games remaining and in the driver’s seat for a playoff spot in the NFC. All things considered, it is hard to imagine a better scenario.
Here are the snap counts and grades from Sunday’s game, according to Pro Football Focus.
AdvertisementAdvertisementAdvertisementOffense
Quarterback
Brock Purdy 63 (74.5)
Mac Jones 4 (67.0)
Any time Mac Jones can enter a game to kneel the football out is a good day. Brock Purdy wore multiple hats on Sunday. His mobility, ability to manage a game, and ability to push the offense down the field were all on display at different times on Sunday. The stat line isn’t glamorous, but Purdy was exactly what the 49ers needed to leave Cleveland with a win. The turning point of the game was Purdy throwing the 49ers into field-goal range before the half to set up Matt Gay’s doinked in kick to give the 49ers a 10-8 lead at the half. Purdy connected with Ricky Pearsall, Jauan Jennings, and George Kittle on a downfield throw to give the 49ers a lead they would never relinquish.
AdvertisementAdvertisementAdvertisementPerhaps the biggest highlight was Purdy’s dougie following his rushing TD. The 49ers quarterback gets a week to rest his toe and prepare for the stretch run.
Running Back
Christian McCaffrey 53 (59.0)
Kyle Juszczyk 24 (67.2)
Brian Robinson 14 (57.8)
While 2.7 per carry isn’t great, McCaffrey helped the 49ers grind out a win on the ground. His contributions go further than his box score. It’s hard to imagine where this team would be in 2025 without him. McCaffrey found the end zone on the ground following Skyy Moore’s long punt return and added 21 yards receiving. Kyle Juszczyk left the game with a rib injury, but before his departure, he hauled in his 300th career catch in his home state, the site of his first NFL catch – pretty cool stuff for 44.
AdvertisementAdvertisementAdvertisementWide Receiver
Ricky Pearsall 58 (59.1)
Jauan Jennings 54 (72.7)
Demarcus Robinson 29 (49.5)
Kendrick Bourne 23 (54.2)
On a windy day like Sunday, it was hard to imagine a big day from the 49ers’ receivers, but when the 49ers had to get down the field, they did before the half. Jennings found the end zone again and another fight. Ricky Pearsall looks fine running routes, and the production is coming. The 49ers are trying to get Kendrick Bourne his bonus money, but a phenomenal catch was waved off as he couldn’t get two feet in bounds.
Tight End
George Kittle 58 (77.7)
Luke Farrell 14 (56.3)
Jake Tonges 8 (65.0)
AdvertisementAdvertisementAdvertisementGeorge Kittle led the team with four receptions and 67 yards on Sunday. His catch to set up the Matt Gay field goal was one of the biggest plays of the game. Kittle is playing some of the best football of his career. With a 16.8 yards per reception average, Kittle led the passing attack. Hoping the bye helps Kittle rest up on a hamstring that still isn’t fully healed for the stretch run.
Offensive Line
Dominick Puni 67 (57.4)
Colton McKivitz 67 (51.9)
Jake Brendel 63 (63.6)
Trent Williams 63 (58.2)
Spencer Burford 46 (51.1)
Ben Bartch 21 (61.9)
Matt Hennessey 4 (60.0)
Austin Pleasants 4 (59.2)
Well, the left guard position is settled. Unfortunately, it took Ben Bartch’s season-ending injury for a permanent answer in Spencer Burford. Burford and Trent Williams tied for the most pressures allowed with four, but Williams allowed the only sack. Myles Garrett made an unreal move inside to beat the future Hall of Famer. Garrett’s sack would be the only one on the day, with Purdy evading multiple sacks in the pocket.
AdvertisementAdvertisementAdvertisementOverall, the offensive line allowed 15 pressures, 11 hurries, three QB hits, and a sack. The Browns’ defensive line leads the NFL in sacks. Not a bad showing from the line, and Purdy’s mobility is certainly a plus.
Defense
Defensive Line
Bryce Huff 40 (61.3)
Clelin Ferrell 39 (70.8)
Alfred Collins 38 (38.5)
Keion White 35 (64.0)
Kalia Davis 33 (35.9)
CJ West 27 (35.3)
Jordan Elliott 25 (52.0)
Robert Beal, Jr. 16 (50.3)
Clelin Ferrell has been a steady contributor since his re-addition to the 49ers. Two sacks (four on the season), two hurries, and four pressures with a 16.7% win rate on true pass sets is very solid. Speaking of additions, Keion White added four pressures, a sack, a QB hit, and two hurries. The Browns’ game plan was quick throws and screens for Sanders, with a lot of rushing to limit the 49ers’ pass-rushing opportunities. Hopefully, Yetur Gross-Matos can return to give the defensive line another boost after the bye.
AdvertisementAdvertisementAdvertisementLinebacker
Dee Winters 63 (79.6)
Curtis Robinson 61 (58.1)
Luke Gifford 9 (33.8)
Jalen Graham 2 (72.9)
Nick Martin 1 (60.0)
Dee Winters was the highest-graded overall defender, run defender (71.8), and coverage defender (76.2) on Sunday, one of his finest performances of the season. Curtis Robinson’s story is very heart-warming, but Eric Kendricks or Tatum Bethune have to start at MIKE linebacker out of the bye. Two more missed tackles for Robinson, who has struggled to bring down any offensive players in his two starts.
Secondary
Malik Mustapha 63 (78.5)
Ji’Ayir Brown 63 (54.7)
Deommodore Lenoir 63 (71.0)
AdvertisementAdvertisementAdvertisementRenardo Green 62 (62.8)
Jason Pinnock 15 (65.2)
Back-to-back weeks of fine play for Mustapha. I’d argue he was the best defensive player on the field despite PFF’s high grades of Dee Winters. Six tackles and two defensive stops while adding a PBU on one of his two targets. It feels like Mustapha has turned the corner from his injury and is back to flying around on the field. Deommodore Lenoir was the second-highest graded coverage defender at 76.0 and was only targeted twice and allowed one catch for seven yards.
AdvertisementAdvertisement