The first half of Saturday’s contest was quick, but ineffective on either side. The second was a defensive assault led by Nick Bosa, with George Kittle just about matching his effort offensively.
It resulted in a 37-20 win for the 49ers, now 11-4, which keeps their hopes of climbing to the second seed in the conference alive.
It began with a typical three-and-out forced by the defense. San Francisco followed up with a 50-yard drive that came up empty.
On a 4th-and-1, following three-straight carries from Ty Davis-Price, the last of which was stuffed for no gain, Brock Purdy tried and failed to draw the Commanders offsides.
After a timeout, the offense remained on the field, and Kyle Shanahan dialed up a speed option to the left run by… Kyle Juszczyk. Juszczyk read the defender, then pitched late and behind Christian McCaffrey, who was stopped well short of a first down.
It was a bit of a head-scratcher in a game against a fairly weak offense, wasting an early chance to go up three points. There will always be debates about whether or not to go for it, but against a team averaging the eighth-fewest points per game (18.9 per game), it was odd at the time.
This was always set up to be a defensive battle. That remained the case for a pretty quick first half, which was highlighted by the 49ers’ defense holding firm at the goal line.
Washington drove the ball down to the San Francisco 5-yard line, then the 1. They would go no further, getting stonewalled on a failed Antonio Gibson leap.
San Francisco’s response was a 99-yard touchdown drive. It began with a 9-yard, perfectly-blocked Christian McCaffrey run up the middle to get the 49ers off their own goal line.
Then, Jauan Jennings netted a 15-yard grab on, you guessed it, third down. Jennings came into this game with 16 first down catches on third down (tied for 8th-most).
Two plays later, the 49ers executed a perfect end around run to Ray-Ray McCloud. With Mike McGlinchey leading the way and cutting off three Washington defenders, McCloud broke off an untouched 71-yard touchdown run to put SF up 7-0.
The half likely would’ve ended 7-0, or better, if not for a Jennings blunder on the first play of the next possession. Jennings bobbled a ball from Brock Purdy, then bobbled it again, into the arms of Commanders safety Darrick Forrest.
San Francisco was still riding the high of what looked like it would another stellar defensive possession.
After a deep completion to Jahan Dotson was called back for Washington, Nick Bosa netted a career-high 16.5th sack on the year.
But the 49ers defense continued to find itself susceptible to the rookie receiver and especially to the Washington passing attack on third-and-long.
While Washington leaned heavily, and maddeningly, on their inefficient run game (33 carries for 79 yards, 2.4 yards per carry), it was their passing that caused the 49ers defense issues. Deommodore Lenoir and Talanoa Hufanga didn’t seem to have answers for the rookie receiver, Dotson. He had six catches for 76 yards and a touchdown on the day.
On 3rd-and-14, Taylor Heinicke found Curtis Samuel fairly wide open for a first down. Along with a 3rd-and-13 conversion to Terry McLaurin and a 3rd-and-10 conversion to Dotson, it continued an ignominious streak of the defense keeping the Washington offense out on the field in what should have been favorable situations.
That conversion cost San Francisco, as Dotson broke away from Lenoir and Hufanga for a half-ending touchdown, tying things at 7 points apiece.
But, as is custom for the 49ers on their first possession of the second half, they netted a touchdown.
George Kittle remained scorching hot. After a 2 TD, 93-yard receiving performance against the Seahawks last week, he improved upon that on Saturday.
The first was a seam dart from Purdy to Kittle for 34 yards.
The second was a deceptive rollout to Purdy’s left. Kittle caught the short pass and with Jennings and Aiyuk blocking, cut it back across the field for a 33-yard touchdown, putting the 49ers up 21-7.
But late in the third quarter, Charvarius Ward went into the blue medical tent. He left the tent and walked directly into the locker room. Perhaps emboldened by Ward’s absence, or the need to get points fast, Washington finally decided to throw the ball.
And, guess what? It worked. Just as it had been all game. Heinicke opened the drive with an 18-yard pass to Dotson, who, once again, was wide open.
The very next play, with Samuel Womack III replacing Ward, Heinicke threw up a 50-50 ball to Terry McLaurin. McLaurin had no issue securing it over Womack for a 51-yard gain. Two plays later, Heinicke found him again for a touchdown, closing the gap to 21-14.
The game seemed wide open at that point. San Francisco came back with a 54-yard catch and run from Brandon Aiyuk down to the 6-yard line. With an avoidable 4-yard sack from Purdy and a false start from Mike McGlinchey, though, it stalled, ending in a chip shot field goal from Robbie Gould.
The defense started to clamp down, though, with Bosa running rampant.
He forced a sack fumble that Jordan Willis recovered in miraculous fashion. The drive stalled out again, resulting in a field goal after another McGlinchey false start which left him frustrated.
Another turnover followed. This time, Arik Armstead pressured Heinicke up the middle and Jimmie Ward picked it off, looking, for a moment, like he had a pick-six. Reviews confirmed his third interception on the year (a career high) but negated the return.
Once again, and for the third-straight time, the offense stalled out deep in the red zone for another field goal.
After a turnover on downs and two turnovers in the second half, the 49ers still left things as a two-possession game, leading 30-14.
At that point, Washington replaced Heinicke with Carson Wentz. Despite Bosa assaulting him nearly every snap, he matriculated the ball down the field. At one point, Bosa was sacking him and Wentz shoveled a ball away for a 21-yard gain.
It was a bizarre possession, with a failed challenge by Shanahan on what looked like an incomplete catch, and another challenge that he didn’t have to use after referees changed the ruling following the challenge.
Eventually, though, Wentz threw a dart to Curtis Samuel for a touchdown. A 2-point conversion would’ve made it a one-possession game.
But Bosa was inevitable, sacking Wentz — with Samson Ebukam there too — on the untimed down. Because it’s an extra point try, it doesn’t count towards Bosa’s league-leading sack total of 17.5.
Bosa had a sack on Tom Brady not count earlier in the year, Wentz rob him of one in this game, and the NFL rule book steal another from him on Saturday.
But the theft of sacks didn’t change the fact that Bosa was dominant, and that sack all but sealed the game.
Washington tried and failed — miserably — at an onside kick. From there, the offense rode rookie Ty Davis-Price in his first extended stint of the season.
The bulldozing back secured a first down. Shanahan opted for a quick screen to Jennings on the ensuing second down, which resulted in a sack on Purdy. Christian McCaffrey ran for eight yards.
It seemed like the drive was going to end there. Shanahan was indecisive for a moment, putting the kicking team on the field for what would have been a fourth field goal and third inside 30 yards.
Instead, he called a timeout, sent the offense back on the field. Purdy found a sliding George Kittle (6 catches, 120 yards, 2 TDs) for the first down, and McCaffrey punched the ball in for a touchdown on the next play.
It was a game where the 49ers wasted a few prime opportunities on offense, but were also facing one of the most physical, challenging defenses in football.
Regardless, it was a 17-point win that keeps them alive for the No. 2 seed in the NFC. If they win out and the Minnesota Vikings lose to either of the Green Bay Packers or Chicago Bears, San Francisco will jump them.