SANTA CLARA, Calif. — Vikings Head Coach Mike Zimmer was speaking about his team's performance against the 49ers running game and effectively summed up the better part of the 2021 season.
"Well, I thought a lot of times we did some really good things, and then sometimes we didn't do good things," Zimmer said.
The Vikings defense, which was effectively without four starters on the defensive line, grinded but allowed 423 yards, including 208 on the ground, in a 34-26 loss.
The loss dropped Minnesota to 5-6 on the season and marked the 10th Vikings game decided by one score this season. San Francisco improved to 6-5 and picked up a tiebreaker (if needed later on) with six games remaining.
The afternoon was one of missed opportunities in all three phases:
Good for the offense
Adam Thielen capped two of Minnesota's first four possessions with touchdowns, converting a fourth-and-goal with a 2-yard reception on the first. Thielen moved up the franchise leaderboard with the scores.
He followed with an incredible adjustment on a ball strategically thrown inside by Kirk Cousins and away from the defense for a 20-yard touchdown and a 14-7 lead with 12:42 left in the third quarter.
Minnesota also put together an impressive scoring drive in the third quarter to snap out of an absolutely disastrous stretch that spanned the end of the second quarter and beginning of the second half.
Dalvin Cook rushed for a gain of 30 on the first play after San Francisco built a 28-14 lead. Cook also caught a 24-yard reception on a pass from Justin Jefferson to set up a 6-yard touchdown run by Alexander Mattison with 8:28 in the third quarter.
View game action photos between the Vikings and 49ers during the Week 12 matchup at Levi's Stadium.
Bad for the offense
Minnesota was unable to get within field goal range late in the first half after opening at the 40-yard line with 12 seconds remaining. A gain of 14 started the drive but took seven seconds. The next play could have been a Hail Mary attempt or a quick one to give Greg Joseph a shot at a long field goal, but it resulted in an incompletion and no time left on the clock.
The Vikings took all three timeouts into halftime.
Minnesota opened the second half with an interception on a pass Cousins intended for Thielen, who was double-covered. The underneath defender, linebacker Azeez Al-Shaair, returned the pick 24 yards to the Minnesota 2-yard line.
After a five-play touchdown drive, Minnesota opened its third offensive possession of the second half with a run play that lost 4 yards. Cook suffered a shoulder injury and was carted off after fumbling. He will undergo an MRI Monday, Zimmer said.
The 49ers took over at the Vikings 9-yard line and added a field goal with 0:09 remaining in the third quarter on what proved to be the final points of the game.
Minnesota failed to capitalize on a first-and-goal at the San Francisco 6-yard line early in the fourth quarter.
Mattison rushed for gains of 1 and 2 before a pass attempt to Tyler Conklin fell incomplete.
Rather than the crisp execution on fourth-and-goal earlier in the game, the Vikings lined up wrong heading into this potentially pivotal play. Kirk Cousins went to redirect people and when he returned to the line of scrimmage, he stepped under center behind guard Olisaemeka Udoh instead of center Mason Cole.
"We just didn't get lined up properly; the play clock was winding down," Cousins said. "I was just moving, trying to get everybody settled up and just got under the wrong guy."
The Vikings had to use their second timeout of the second half. A throw to Jefferson on fourth down sailed over the receiver's head.
Jefferson also had been underthrown on a 2-point play in the third quarter.
Cousins wanted a pass interference call against 49ers DB K'Waun Williams who made contact with K.J. Osborn well before the ball arrived on a third-and-8 with under a minute to go. An incompletion to Jefferson followed on fourth down.
"I thought the defender hooked him," Zimmer said of the no call.
Good for the defense
The Vikings recorded an interception by Harrison Smith on San Francisco's first possession and forced quick punts on its third and fourth times on the field.
Minnesota also rallied after the Cook fumble to force a field goal and keep it a one-score game.
Bad for the defense
Minnesota handled San Francisco's perimeter run game early, but Deebo Samuel rushed for a 20-yard touchdown to tie the game at 7 with 5:31 left in the first quarter.
Eric Kendricks wanted a holding call against the 49ers on the scoring run. He put his hands up in the air in disbelief that it wasn't called.
"Refs let us play all day. So it is what it is," Kendricks shrugged after the game.
Samuel also added a 49-yard run that set up his 3-yard touchdown run early in the third quarter.
"I think we misaligned on [the 49-yard run]," Zimmer said. "The other ones, I mean, these guys hold all the time. So they're grabbing us around the waist, grabbing our backs. The officials, they don't want to call it on every play, but until they start calling it on every play, they're not gonna stop doing it."
Perhaps further selling calls might help?
Just ask 49ers tight end George Kittle who, um, drew a 5-yard holding penalty on Patrick Peterson that negated a loss of 10 on a throwback trick play. Rather than fourth-and-18 and punt with 3:21 remaining in the first half, the 49ers took advantage of the new set of downs.
To be clear, Minnesota could have gotten a stop on third-and-2, but Jimmy Garoppolo executed a QB sneak coming out of the 2-minute warning. The drive also was extended with a 24-yard completion to Brandon Aiyuk on third-and-11 from the Minnesota 30 with under a minute left in the first half.
Good for special teams
Kene Nwangwu continued his impressive rookie season that was delayed by injury until Week 8. Nwangwu returned a kickoff 99 yards for a touchdown after a 46-yard field goal made it 31-20 with 4:58 left in the third quarter.
Minnesota's field goal block unit was able to force a miss in the fourth quarter to give the offense one more chance.
Bad for special teams
An extra point sailed wide right after Minnesota's touchdown run by Mattison made it a 28-20 game with 8:28 left in the third quarter. The Vikings had to chase that point later with an unsuccessful 2-point conversion.