SANTA CLARA — The 49ers made it look so easy on the first two plays of the game.
From there, it got a little more difficult, but the 49ers still picked up a mostly comfortable 28-16 victory over the Seattle Seahawks on Sunday at Levi’s Stadium.
The 49ers, coming off an emotional victory a week earlier against the Philadelphia Eagles, had to overcome some injuries and work hard deep into the second half to beat Seattle.
Stay in the game with the latest updates on your beloved Bay Area and California sports teams! Sign up here for our All Access Daily newsletter.
“It wasn’t the perfect football (game), by any means,” 49ers coach Kyle Shanahan said, “but the goal is to get a win.”
The 49ers (10-3) now have a four-game lead in the NFC West race over the Seahawks and Los Angeles Rams with four games remaining.
Here are the grades from the 49ers’ Week 14 victory:
Rushing offense
San Francisco 49ers
Find the latest San Francisco 49ers news, highlights, analysis and more with NBC Sports Bay Area and California.
Running back Christian McCaffrey did not waste any time getting going on Sunday. On the first play from scrimmage, he found a lane around the left side, cut back and broke off a 72-yard run to the Seattle 3-yard line.
With McCaffrey being called off the field for a rest, backup running back Jordan Mason stepped in and scored on a 3-yard run on the next play.
And just like that, the 49ers had a 7-0 lead less than a minute into the game. McCaffrey finished with 145 yards rushing on 16 attempts for a 9.1-yard average.
Mason added 20 yards and a touchdown on the ground on four attempts, while Deebo Samuel added a one-yard touchdown run on his only carry.
Grade: A-minus
Passing offense
Quarterback Brock Purdy had one blip — an interception on a pass in which he and Brandon Aiyuk appeared to have a miscommunication.
Other than that, the 49ers’ passing game was rolling once again.
Purdy completed 19 of 27 pass attempts (70.4 percent) for a career-best 368 yards with two touchdowns, one interception and a passer rating of 122.1.
The 49ers were ultra-explosive, as usual.
Samuel caught seven passes for 149 yards and a touchdown. Aiyuk had six receptions for 126 yards, and George Kittle had three catches for 76 yards and a touchdown.
Grade: A-minus
Rushing defense
The 49ers’ run defense continued to clamp down on the opposition, as Seattle managed just 70 yards on 20 rushing attempts.
Seattle's top rusher, Kenneth Walker, gained 21 yards on eight attempts. Zach Charbonnet had 44 yards on nine carries.
Linebacker Fred Warner had a team-high eight tackles.
Defensive end Clelin Ferrell had two tackles behind the line of scrimmage.
Grade: B-plus
Passing defense
Seahawks backup quarterback Drew Lock got the call with starter Geno Smith out with a groin injury. Lock had a solid game, completing 22 of 31 passes for 269 yards and two touchdowns.
Safety Ji’Ayir Brown and Warner came up with interceptions.
Cornerback Deommodore Lenoir stepped up with two passes broken up, as the 49ers played most of the game without Charvarius Ward.
Ward sustained a groin injury and came out of the game after four plays. Isaiah Oliver played nickel back with Lenoir playing every snap on the outside.
The 49ers collected four sacks. Defensive end Nick Bosa came up with 1.5 to give him a team-high 9.5 on the season.
Grade: B
Special teams
Punter Mitch Wishnowsky had a 43.6-yard net average on five punts with two inside the 20-yard line.
Wishnowsky could also have had a huge offensive play when he ran for 30 yards out of punt formation. However, the first down was nullified when Ronnie Bell was called for an illegal block below the waist.
Kicker Jake Moody did not get any field-goal attempts but was 4-for-4 on extra points.
Grade: B
Coaching
The 49ers averaged 9.9 yards per offensive play, as Shanahan was dialing up plays to create opportunities for his playmakers.
Also, it does not hurt that Purdy was making the right decisions and generally throwing the ball on the mark at every depth.
Defensively, the 49ers did not have their best game, but they created two interceptions and four sacks.
Grade: B-plus
Overall
Yes, the 49ers have gotten to the point that a 12-point victory over a playoff contender is not worthy of an "A" grade. That’s how high the 49ers have set the bar this season.
Still, the 49ers showed that a “B” game is good enough for them to beat a lot of teams — and beat them decisively, too.
Grade: B-plus