The 49ers head into the bye week with a little momentum, as they picked up their third victory in a row on Sunday.

The 49ers made plays on offense, defense and special teams in a well-rounded 26-8 victory over the Cleveland Browns on Sunday.

Special teams got the 49ers going early in the first quarter. Then the offense and defense made few mistakes the rest of the way as the 49ers improved to 9-4 on the season. They held onto the seventh spot in the NFC playoff picture with four games remaining in the regular season.

Here is the report card from the 49ers’ Week 13 game against the Browns:

Rushing offense

Again, the 49ers did not have a lot of consistent success on the ground. But they also did not do anything to hurt themselves.

The 49ers did not turn it over, and Christian McCaffrey finished the first-quarter drive with a touchdown run.

Brock Purdy had a rushing touchdown late in the third quarter that caught the Browns’ defense by surprise.

McCaffrey only had 53 yards and a touchdown on 20 rushing attempts, but the 49ers’ running game kept the team in manageable third-down situations.

Grade: B-minus

Passing offense

Purdy was steady throughout on a day in which it was very difficult to throw the football in the windy conditions.

Purdy completed 16 of 29 passes for 168 yards with one touchdown and no interceptions. The 49ers did a good job of protecting Purdy, as he generally had enough time to go through his progressions. The 49ers converted 11 of 17 (64.7 percent) on third downs.

Purdy’s best sequence came when he hit Ricky Pearsall, Jauan Jennings and George Kittle on passes in the final seconds of the first half to get into position for a short field goal.

The 49ers managed to prevent Browns star defensive end Myles Garrett from wrecking the game. Garrett’s only sack came after the 49ers already had built a sizable lead. Garrett beat Trent Williams for a sack to add to his NFL-best total of 19 for the season.

Grade: B

Rushing defense

The 49ers’ run defense got off to a rough start, as they got overpowered at the line of scrimmage and missed too many tackles. But when they needed stops, they came up with them.

Malik Mustapha and Jordan Elliott came up big on a fourth-and-1 play to stuff Browns running back Quinshon Judkins at the 49ers’ 20-yard line in the first quarter. In the third quarter, the Browns lined up rookie tight end Harold Fannin behind center on a fourth-and-1 play. Fannin fumbled the snap, and 49ers linebacker Luke Gifford was there to make the recovery.

Grade: B

Passing defense

The 49ers’ defensive plan was to stay in their pass-rush lanes and make Browns quarterback Shedeur Sanders beat them. He did just that in the second quarter, when he hit tight end Harold Fannin for a 34-yard touchdown.

But, overall, the 49ers did a fine job with their pass defense, including three sacks of Sanders. The 49ers held Cleveland to just 3-of-11 efficiency on third downs.

Clelin Ferrell had a big sack on a third-down play in the first half, and Keion White put the game away with a fourth-down sack of Sanders in the fourth quarter. Ferrell added another sack later in the game to give him a share of the team-lead with Bryce Huff. Both have four sacks on the season.

Grade: A-minus

Special teams

Skyy Moore got the 49ers going once again with a long punt return in the first quarter, and Darrell Luter Jr. helped the 49ers put it away with the recovery of a muffed punt in the fourth quarter.

The 49ers had a 22-yard advantage over the Browns with their average starting point on drives.

Kicker Matt Gay had a close call at the end of the first half when he banked in a field-goal attempt from 25 yards for a 10-8 lead entering the third quarter.

Grade: A

Coaching

Defensive coordinator Robert Saleh put together a solid game plan to keep Sanders in the pocket and force him to go through his reads.

Coach Kyle Shanahan had the 49ers prepared for this kind of game against a tough defense and inclement weather.

Shanahan dialed up a play at the goal line that was designed to take advantage of the Browns’ focus on McCaffrey. While two defenders, including Garrett, went after McCaffrey, Purdy kept the ball and had an easy 2-yard run into the end zone.

Grade: A

Overall

The 49ers cleaned up their issues coming out of their victory over Carolina on Monday and did what they needed to do to secure the victory.

All phases of the team had their fingerprints on this victory, as the 49ers played one of their better all-around games despite the challenging weather conditions.

Grade: A-minus