There seemed to be a lesson learned in running back Alexander Mattison's 6-yard touchdown run in the third quarter of the Vikings' 34-26 loss in San Francisco on Sunday.

On first and goal, Mattison took the handoff directed toward the left edge. Solid blocking set him up for a one-on-one matchup with 49ers cornerback Josh Norman on the outside. Instead of lowering his helmet forward, Mattison turned outside, threw up a failed stiff-arm, and slipped Norman's tackle attempt on the touchdown run to the pylon.

Quarterback Kirk Cousins met Mattison in the end zone, where the FOX broadcast microphones overheard him telling Mattison, "that's why you bounce it on the corner."

Goal-to-go spots have been an uncharacteristic grind for this 2021 Vikings running game, which sputtered on the doorstep of the 49ers end zone in Sunday's fourth quarter. The Vikings had four plays from San Francisco's 6-yard line, but came away with zero points, marking a key stretch in the one-score loss that we'll break down below.

1. The 2021 Vikings offense has been remarkably efficient in the red zone, but it's fallen on Cousins' arm. Specifically inside the 10-yard line, where passing windows are tight and the running game is needed, he's thrown 12 of their 17 touchdowns.

For comparison, Cousins threw 12 of the team's 29 touchdowns in that range in 2019. Last season, he needed to throw 18 of 34 scores inside the 10-yard line. His share of the workload keeps increasing. For all the talk about the Vikings' offensive identity changing to be more aggressive, this evolution near the goal line is seemingly born out of necessity. These offensive linemen and tight ends simply can't bulldoze. They lost those battles against the 49ers, which put the game in Cousins' hands once again.

The Vikings' six rushing touchdowns this year are tied for the NFL's fewest with the Falcons and Texans.

Source: Pro Football Reference

After a failed 1-yard Mattison run on first-and-goal, during which center Mason Cole was held up and shed by 49ers defensive lineman D.J. Jones, the Vikings go back to the well.

It's an inside zone run to Mattison on second-and-goal. There's some misdirection built in with receiver Justin Jefferson (#18) on a jet motion at the snap. But the problem begins immediately with 49ers (6-foot-7-inch) defensive lineman Arik Armstead (#91) putting his left hand on guard Ezra Cleveland (#72) and ripping him toward the grass field.

This opens a lane in the middle where 49ers linebacker Azeez Al-Shaair (#51) quickly fills. Mattison (#25) initially plants his right leg to cut left, but has to redirect when the center, Cole, peels off a double team with right guard Oli Udoh to block Al-Shaair.

Mattison redirects to his right, where he's met by two 49ers — one whom receiver Adam Thielen appears to block poorly.

2. On third-and-goal, coordinator Klint Kubiak and Vikings coaches had seen enough of that and try to get the ball to Jefferson or Thielen.

But this attempt sputters, too, in part because of the offensive line. You could also question the efficiency of motioning Thielen (#19) twice, first to pair him with Jefferson (#18) on the left side, and then again on a fake return motion that has Thielen changing direction at the snap.

The Vikings call this play with a replacement left tackle in Rashod Hill, who filled in for the injured Christian Darrisaw in the fourth quarter. Hill gets knocked backward initially by 49ers defensive end Nick Bosa, which disrupts Thielen's release into the flat. San Francisco's outside corner sank to cover Jefferson, which theoretically could've made Thielen a go-to option in the flat. But he runs into Hill, Jefferson is doubled, and Cousins moves on quickly to tight end Tyler Conklin (#83) in the back of the end zone. The pass is well-placed but broken up by a 49ers defender in strong coverage.

3. On fourth-and-goal, after pre-snap confusion led to Cousins lining up under the right guard and calling a timeout, coaches try to give Jefferson and Thielen more room to operate.

Receiver K.J. Osborn (#17) motions left, and he'll be followed by Thielen (#19) at the snap. Jefferson (#18) runs an over route with the play-action bootleg, but he cuts it off halfway through the end zone.

Tight end Tyler Conklin (#83) is blocking briefly before releasing as a checkdown option. But Conklin doesn't get much of 49ers defensive lineman Samson Ebukam (#56), who knocks Conklin backward and pressures Cousins. Center Mason Cole also gets shed, setting another 49ers defender loose. The 49ers secondary is disciplined in their zones. Cousins might've had a window to Jefferson, but he throws off his back foot in the face of pressure and it's a turnover on downs.