The 49ers started the game with an ultimate statement as Christian McCaffrey took a hand off from Brock Purdy, made one cut, then outran every Seahawks’ defender but one for a 72-yard carry. Jordan Mason capped the drive off with a three-yard touchdown to give the Niners an early 7-0 lead.
The Seahawks took advantage of Charvarius Ward sustaining an injury on the initial third down of the drive. Isaiah Oliver played in the slot, and Seattle completed a pass his way to Tyler Lockett for a 9-yard gain to move the chains. On the ensuing play, Drew Lock found DK Metcalf in the end zone behind Ambry Thomas for a 31-yard touchdown.
That made the score 7-7. The 49ers offense would go three-and-out on their next two possessions to total 11 yards. Seattle gained three yards on their second drive, but saw far more success on their third drive.
Zach Charbonnet gained 23 yards on consecutive plays. But the drive stalled in the 49ers red zone after Nick Bosa tackled Charbonnet in the backfield for a loss of four. Seattle would settle for a 40-yard field goal, which made it 10-7, Seahawks.
The 49ers offense looked as if they were waking up after Brandon Aiyuk took a first down pass for 25 yards. A second gain of 11 yards from the duo put the ball into Seahawks territory. But a third throw from Purdy was out of reach for Aiyuk, leading to an interception.
Aiyuk and Kyle Shanahan had a conversation on the sideline after the play. Either way, regardless of who was at fault, the turnover gave Seattle favorable field position.
Deommodore Lenoir would guard Metcalf with Mooney out, and it was not the matchup the 49ers wanted. Metcalf forced a defensive pass interference call, giving the Seahawks a fresh set of downs after a third down which would have resulted in a punt. But the defense held and Lock and Seattle were forced to punt.
The 49ers got into a position to take a shot down the field on the next play, and they didn’t miss. Shanahan drew up a scheme where Jamal Adams was forced to defend Deebo Samuel 1-on-1. Even worse for Adams, it was a foot race when he was flat-footed and Deebo had a running start.
Fifty-four yards later, and the 49ers regained the lead 14-10. On the next possession, Pete Carroll elected to punt on 4th & 2 from midfield. That felt like waiving the white flag and not grasping the situation, regardless of the result.
Unsurprisingly, it took the 49ers only a few plays to reach the yard line where Seattle punted from. Deebo gained 25 yards to put the Niners into Seattle territory. A false start penalty by Jon Feliciano would ultimately do the offense in on the drive, and we’d head into halftime with the score 14-10.
The decision to not call timeouts before the end of the half by Shanahan was a curious one. You had a backup quarterback backed up in his own end zone with over a minute to play with multiple timeouts. It felt like a 2018 move from Shanahan, and not one of a coach who has a potent offense.
The defense had another opportunity to intercept Lock on the next possession, but Deommodore Lenoir couldn’t hang on.
The offense would punt, but Mitch Wishnowsky had a 30-yard run wiped out after an inexcusable block from rookie Ronnie Bell. All he had to do was get out of the way. Bell, who appeared to have slipped, was penalized for a low block.
The defense forced Seattle into a third and long. Steve Wilks brought pressure, but Lock escaped the pocket and that meant Randy Gregory was in coverage. He had to guard Lockett, and the plan failed.
Clelin Ferrell, who paid homage to Arik Armstead with a sack on the drive, had another tackle for loss to force 3rd & 13. Rushing from the inside, Nick Bosa destroyed the right guard and nearly came up with a sack. Dre Greenlaw was there to prevent Lock from scrambling, and Seattle had to force a punt.
Purdy would find Aiyuk on a scramble drill for a gain of 45 yards to begin the next possession. After a 12-yard run by McCaffrey, the Niners were inside of the red zone. On third down, Purdy threw the ball across his body over the middle. Samuel caught it, made a defender miss, before getting tackled at the one-yard line. Then, Samuel took a jet sweep to give the 49ers a 21-10 lead.
The defense would lose another starter as Dre Greenlaw appeared to take a helmet to the knee. Seattle would run a similar play that the 49ers ran and scored against them on last year on Thursday night football with George Kittle. It was a great design which pulled Seattle within four to make it 21-17.
Samuel wasn’t done, and his 30-yard catch and run on first down was the final play in an eventful third quarter. San Francisco averaged 10.7 yards per play through three quarters and had eight plays of at least 20 yards.
George Kittle would add to that number with a 44-yard touchdown reception. So make it nine plays of 20 yards or more and 11.4 yards per play. That made it 28-17.
The defense would play the fourth quarter without Javon Hargrave, in addition to Greenlaw, Ward, and Arik Armstead, of course. Ji’Ayir Brown’s interception on the next play showed a glimpse of the third-round pick's skill set.
But an Aiyuk fumble right after kept Seattle in the game. Thankfully, the Niners still had the reigning Defensive Player of the Year on the field. A Nick Bosa sack forced a Seattle punt and bailed Aiyuk out. Aiyuk went over 100 yards receiving on the play. Samuel, who picked up another first down on the ensuing drive, went up to 149 yards.
Jauan Jennings couldn’t reel in his target on fourth down, which forced a punt. Nick Bosa, for the second time, would jump offsides in the game. This one was more impactful as it came on fourth down to gift Seattle a first down.
Bosa and Javon Kinlaw would split a sack, then Fred Warner would intercept Lock to clinch the game. There was a skirmish after the play, as Metcalf grabbed Warner by the facemask, held it, grabbed it, and wiggled it. Warner pushed DK first.
Lenoir wound up getting disqualified for coming in with a late push. Metcalf was kicked out, too.
A Kittle reception just ahead of the two-minute warning would put the game out of reach. Brock Purdy finished the game with 368 passing yards. Here’s how the receivers finished up:
Deebo Samuel: 149
Brandon Aiyuk: 126
George Kittle: 76
Each player had a reception of at least 40 yards.