The Minnesota Vikings gutted out an ugly 25-16 win against the Jacksonville Jaguars that for most of the game was and felt closer than the final nine-point margin. Obviously, holding Jacksonville to 16 points is a more impressive (and more important) feat than scoring 25, especially as 12 of those points came through field goals.

It’s not surprising that the defense led the way, as they have virtually the whole season, but even they suffered from serious missteps—most notably on a 92-yard field goal drive and a 90-yard touchdown drive.

Once again, the defense hinged on the performance of the defensive line—though not quite matching the performance from last week, it was once again top quality. A sack apiece from Danielle Hunter and Brian Robison, along with two from Everson Griffen, will highlight their night, but it’s not all they did.

Blake Bortles was under pressure the entire night, and it showed in the number of erratic throws he flung out there, more than one of which should have been picked. More than that, they were dominant as run stoppers.

Jacksonville running backs were held to a 40 percent success rate (excluding a run by upback/running back Corey Grant on a fake punt) and 3.4 yards a carry. There were some big runs given up, but most were on linebackers Anthony Barr and Eric Kendricks or safety Anthony Harris.

All but two running failures from Jacksonville came at the hands of the defensive line, with Danielle Hunter racking up an incredible five stops in the running game to go with his sack and hurry. Linval Joseph had two additional run stops and Everson Griffen contributed his own run stop, along with a team-high six hurries (including the two sacks).

Add in a pass deflection from Everson Griffen and two from Tom Johnson—and a blocked field goal from Linval Joseph—and it’s clear that the defensive line led the effort to shut the Jaguars down.

Linval Joseph also provided help in a way that numbers don’t generally capture, redirecting runners and penetrating in a way that he hadn’t in the Dallas game—controlling the line of scrimmage for the Vikings and enabling rushers as well as tacklers to get into the backfield. The defense ran through him.

The secondary played fairly well, though—like in years past—must be qualified with the phrase “if not for the penalties.” The best-performing player was Terence Newman, who was targeted on only 10 percent of his coverage snaps, which is already pretty great, and did well enough on those targets aside from his first one, which was more about Marqise Lee’s excellent effort on the catch than it was any error on Newman’s part.

More relevantly, he was a surprising force in the run game, taking down a powerful T.J. Yeldon on key tackles throughout the game, and even stopping Corey Grant once. He contributed directly to two running failures and had a few tackles that stemmed the bleeding on an otherwise great run by the opposing offense.

Xavier Rhodes didn’t play to his standard before the penalty that benched him, with a defensive pass interference early on, giving Jacksonville 31 yards. He ended up giving Lee another 34 yards, though more credit to Lee should be given for the quick back shoulder work and an acrobatic catch.

After the penalty, he improved on his performance and he honestly wasn’t targeted much because of how strong his coverage is in general, but those big receptions and penalty problems stand out.

Nickel corner Captain Munnerlyn did extremely well, and his assignment didn’t get big plays off of him. Though targeted often, it was for underneath yardage and though he did allow a first down or two, he largely bottled up the YAC-type offense from the slot the Jaguars tried to generate.

Trae Waynes and Mackensie Alexander didn’t play too many snaps. Waynes’ few snaps were fine and Alexander’s snap was a disaster, though upon review the penalty on him was dicey.

Anthony Harris struggled in run support and was a small problem dealing with tight ends, though he wasn’t as big a liability as might have been expected. Overall, he didn’t have a great game and Harrison Smith’s absence was sorely missed, but compared to an average safety, he didn’t acquit himself poorly.

Not targeted much, but responsible for the only touchdown that the Jaguars scored, Andrew Sendejo may have earned more ire than he deserves because he did a fine job as a deep safety. [Note: Mike Zimmer said the play was on Anthony Harris, though that’s a fairly surprising diagnosis. Still, even in that situation, Andrew Sendejo played that poorly; it just also means that Anthony Harris should be dinged, too]

The biggest issue for the defense was the play of the linebackers. Eric Kendricks had some shining moments, but he and Anthony Barr did a very poor job reading keys and getting to the point of attack in the running game; sometimes being so late that they were both one gap over.

While they weren’t the subject of the passing game’s attacks too often, they still demonstrated minimal awareness and late reaction to what was happening in front of them, especially Barr. To Kendricks’ credit, he made up for some of these miscues with incisive attacks on other plays to the running back.

Offensively, the Vikings are difficult to evaluate. Sam Bradford showed remarkable accuracy and aggression early on, and then displayed too much cautiousness throughout the second and third quarters—which killed the ability of the Vikings to generate first downs.

Overcautiousness is its own form of losing the turnover battle; punts are not dissimilar from deep interception, and refusing to be aggressive on third down is the same as conceding a possession.

That’s not an argument for always chucking it deep on third down; success rate is an important concept, as is the concept of horizontal stretches and YAC-oriented conversion, but too much risk aversion means not much reward—even when given an astonishing 5+ seconds in the pocket (one time of which he scrambled despite Thielen 12 yards downfield, with no defenders within five yards of him).

Bradford navigated the pocket well, something we’ve really only seen in the last two weeks, and generally took advantage of the protection afforded him. His play on the fumble-pass to Jerick McKinnon was inspired and one of the best quarterback plays I’ve seen this year.

But it’s difficult to overemphasize that while he hit a number of high notes, the cautiousness on third down was an overwhelming factor in the Vikings’ poor offensive output.

Perhaps the only other significant factor in derailing Minnesota’s offensive potential is their short-yardage running. While they no longer have an abysmal 27.8 percent success rate running at the goal line, theirs is still near the bottom of the league at 37.5 percent—which admittedly seems high compared to what we saw in the game (16.7 percent from three yards or shorter at the goal line).

Unsurprisingly, the Vikings are also poor at short-yardage running away from the goal line as well. When looking at third or fourth down-and-short-to-go away from the goal line, the Vikings rank third-to-last (again, an improvement from earlier in the season, when they simply ranked last), converting 52.6 percent of their attempts.

There was no individual failure in the plays that one can point to for a simple solution, though the Vikings would do well to be more innovative in those situations.

Evaluating the play of the offensive line in the passing game was a relative pleasure. Despite some late-developing plays, the offensive line was responsible for one pressure in the first half—the Yannick Ngakoue forced fumble off of T.J. Clemmings that Bradford turned into a completion. There was one other pressure in the first half, but that was a result of Bradford drifting in the pocket.

That’s not to say pressure didn’t arrive in the second half; T.J. Clemmings and Brandon Fusco were responsible for the majority of it, both giving up five pressures each by my count. Jeremiah Sirles did far better than he did in previous games, not giving up much (but also benefiting at times with easier assignments).

While Clemmings suffered from technical problems as a pass protector, Fusco dealt with all kinds of issues. He gave up pressure through assignment mistakes, mechanical failures and simply getting overpowered. And that was on a more limited snap count because of injury.

Nick Easton and Alex Boone were nearly perfect as pass protectors, though Easton largely played with help and Boone gave up one pressure near the end of the game with three minutes left to play.

From what I saw, Kerin didn’t give up any pressures either. He was really only in for four pass blocking snaps, and two of them involved him pulling in play-action away from a bootleg, so he didn’t have to do much. I wouldn’t write home about two clean pass protection snaps.

He was much more involved in the running game, where he was up-and-down. He had some excellent snaps, especially at the goal line as a sixth offensive lineman, generating some push the Vikings sorely needed.

The problem is, no matter who was in at right guard, the running failures would generally start there. Between Fusco and Kerin, there were six running failures that either originated from that spot or were exacerbated because of issues there.

With only 25 designed running plays total, that’s pretty astounding. Fusco, just like he had as a pass protector, failed as a run blocker in a variety of ways—sometimes misjudging who he had to block, sometimes losing immediately off the snap because of some technical error and sometimes losing the power battle up front.

It seems clear to me that Fusco was the worst offensive linemen in the game on either team—despite the pressure mentioned above put on by the Vikings defense.

In my estimation, Boone was a perfect run blocker, making no mistakes and adding value to some plays. That means throughout the entire game, I logged one mistake from him.

T.J. Clemmings shouldn’t be upset about his work in the run game as well, with only two run blocking failures—one on a play that was an extremely tough ask.

Fusco wasn’t the only one who had consistent issues with run-blocking. Though Boone and Clemmings were fine or excellent pushing piles, Easton and Sirles were big liabilities, though in completely different ways.

Easton often lost snaps immediately, and allowed Sen’Derrick Marks or some other defensive tackle to influence or stop the play before it could develop, often before Asiata or McKinnon arrived at the line of scrimmage.

Sirles, on the other hand, did well enough once he got to his assignment, but frequently couldn’t get up to the second level and peel off of double teams in order to wall off a linebacker, usually leading to a defensive stop.

Overall, I think Sirles did a more than adequate job at right tackle, and a better job than Clemmings or Andre Smith have put together, despite those missteps at the second level in the run game. Clemmings has improved, but still is one of the biggest liabilities in the NFL at his position, and Alex Boone has settled in to being a consistent, possibly dominant player at guard.

Nick Easton, despite his significant issues single-blocking in the running game, is doing better than one would expect and deserves some praise, and Brandon Fusco probably should not be in a Vikings uniform next year, though that is admittedly a tough ask with so many offensive linemen expected to be gone.

Zach Line also had his issues, though he may have had the best block of the day at the goal line (one that was wasted because Marks grabbed Asiata behind the line of scrimmage).

Kyle Rudolph was a decent run blocker and even had a highlight play in pass protection to go along with his generally good performance as a receiver against the Jaguars, but the usually stalwart Rhett Ellison couldn’t say the same.

Ellison wasn’t necessarily directly responsible for the four plays he lost his run-blocking on, but he influenced the play or would have if some other player hadn’t messed up first.

If one excludes the first quarter, Jerick McKinnon had an astonishingly good day. A surprisingly consistent runner, he had some decisionmaking errors early on, including the first, fifth and sixth runs of the day, but improved to showcase an even mix of patience and decisiveness. People will also remember his incredible ability as a pass-catcher in this game, too, and we’re beginning to see his ability to provide a threat from multiple dimensions.

That’s not to say he should be excused for those failures; three failed runs solely because of him is a large number when there are only 14 runs. But, he should be excused for some of the early contact he received in the game, and I think he really made up for some of those failures.

Matt Asiata seems to have restored his jump-cut agility as well, and though he doesn’t have much yardage (especially after excluding his 23-yard gainer), he was put into bad situation after bad situation—not just because bad run-blocking aborted his runs early, but because the down-and-distances he was given were not good for generating yardage in the first place.

Naturally, the highlight skill player of the day was Adam Thielen. Another 100-yard game gets added to his resume, and he’s really developing an identity as a player. He’s a dynamic athlete that plays fairly wild and uncontained—sometimes leading to issues on special teams, as we saw earlier—but generally with aggressiveness that showcases itself in the final yards of the play. In this game, he was open even more often than he was targeted, and he’s playing like more than just a starting-quality receiver.

Stefon Diggs, for his standards, had a relatively quiet day. Three receptions for 55 yards (one on a 45-yard deep pass early in the game) isn’t what you’d expect from your marquee receiver, but he generally didn’t make too many mistakes in the game. Bradford declined Thielen and Diggs when they were open far too often, and didn’t let either of them get the chances they deserved.

Overall, the Vikings demonstrated how close they are to being a complete team, but given that it comes against one of the worst teams in the NFL, doesn’t count for much. Fixing either the short-yardage or quarterback cautiousness issue might unleash the offense in a way that won’t necessarily rival the 2007 New England Patriots, but should lighten the load on a defense that can empty the holster against the best units in the NFL.

This game was ugly, disappointing, and ultimately a win. The most infuriating aspects of the performance deserve attention and correction from the Vikings. But there’s talent there, and they have a chance to win out and make a push for the playoffs.