The Minnesota Vikings finally added a win after a month of drought when going up against a team many expected to make waves this year, the Arizona Cardinals. A win’s a win, but it could have been a different story, as the Vikings staved off a final push from the Cardinals to win 30-24.

It marks the second time the Vikings scored more than 30 points this season, with the 31-13 victory over the Houston Texans standing as the only other example. Despite the excellent performance of the offense, they really aren’t the story of this game, with two touchdowns scored via returns—one by Cordarrelle Patterson on a well-blocked kick return and the other from Xavier Rhodes, a 100-yard interception return.

Individually, those plays obviously had the largest impact, but the key to maintaining the leads generated by those scores is the performance of the defensive line. It’s difficult to overstate how well they performed.

Defense

Sam Ekstrom already covered their second-half turnaround and the faith that Zimmer put into them throughout the game, but it might also be useful to bring in raw numbers. Pro Football Focus’ review of the game was glowing, and here’s the pressure table they put together:

Palmer was under pressure on more passing plays than he wasn’t—a feat that the porous Minnesota Vikings offensive line hasn’t allowed this year.

In previous performances, the defensive line has only generated pressure on more than half of an opponents’ dropbacks once—the eight-sack game against Carolina.

Even then, they didn’t get pressure as often; 23 of 42 of Cam Newton’s dropbacks were under pressure in that game, while 27 of 43 dropbacks for Carson Palmer were under duress. Not only that, the individual players did incredibly well.

Here are the pressure rates each player put together, next to positional averages and what the top ten percent of players in the statistic will average over the course of the year:

Player Position Pressure Rate Positional Average Rate “Elite” Pressure Rate Everson Griffen Edge 25.0% 10.7% 14.7% Danielle Hunter Edge 29.0% 10.7% 14.7% Brian Robison Edge 19.4% 10.7% 14.7% Tom Johnson Tackle 18.2% 8.1% 12.9% Shamar Stephen Nose 7.7% 5.0% 8.7% Linval Joseph Nose 13.0% 5.0% 8.7%

That’s astounding; every player performed at an elite level or even better in terms of generating pressure. Not only that, Linval Joseph created pressure at a rate one generally sees from good defensive ends—his 13.0% rate in this game matches the pressure created by Khalil Mack, Charles Johnson or Mike Daniels this year.

And of course, Danielle Hunter created pressure at twice the rate of an elite defensive end while Tom Johnson at defensive tackle outproduced some of the best edge rushers in the NFL.

That level of pressure production meant that Palmer was rarely comfortable in the pocket, and one of his two interceptions were the result of that pressure.

Not only that, the Vikings starters were remarkably effective at stopping the run. It’s easy to remember the repeated runs by David Johnson gashing the defense, but the reality is that the starters, when they were in, stopped him up. Johnson averaged 3.2 yards a carry with Linval Joseph, Everson Griffen and Brian Robison in, and he made up for that by taking advantage when Shamar Stephen took Joseph’s spot on the defensive line—averaging 7.5 yards a carry when Joseph was out.

Joseph ended up with three stops—defensive tackles that constitute a loss for the offense in the running game—out of the 19 or so running snaps he was in the game for, making for a run stop rate of over 15 percent; an elite rate for a linebacker, much less a nose tackle.

vikings run defense with linval joseph pic.twitter.com/eqRzq2hJcJ — charles mcdonald (MAN 101 STUDENT) (@FourVerts) November 22, 2016

Speaking of linebackers, Eric Kendricks had a very up-and-down game, but certainly gave us reminders as to why he was such a highly regarded linebacker entering the draft. While he had a few coverage errors and a run-defense error on the goal line that led directly to a touchdown, he also found himself spearing behind the Arizona offensive line for a tackle-for-loss on one play with an impressive pass deflection soon afterwards. He also seems to be taking direct blocking contact much better and added another two tackles near the line of scrimmage to his tally.

Anthony Barr seems to continue to struggle, but he was at least marginally more effective in this game than he has in recent games. He was credited for seven tackles, though the real number seems to be closer to five, and he was much more effective in coverage than he was last week. There’s no easy answer to why he’s been so lackluster lately, but this is some improvement.

At the back end, it would be difficult not to give the game ball to Xavier Rhodes. Perhaps because Linval Joseph played so incredibly well, there might be competition for the award, but Rhodes is at least the front-runner. They only threw at him five times—four if you don’t really think he was targeted on that first interception—and came away with two turnovers. That’s a pretty good rate of return, especially as he didn’t seem to give up too much when he wasn’t intercepting a pass.

Alongside Rhodes, the Harrison Smith we’re used to seeing, instead of the one we saw the last two weeks, showed up in full force again today. He didn’t miss tackles in the way that he had last week and he was a big part of stopping the leaks in a sinking ship when it came to big runs to the outside or breakout runs from David Johnson.

Rarely targeted as a coverage defender, nearly all of his ten tackles came in the running game or stopping a receiver who beat someone else downfield. With a sack and tackle-for-loss in hand, he continues to claim the eliteness that landed him a big-money contract.

Munnerlyn was targeted more often than any other defensive back, but that in part is the result of the Cardinals’ willingness to play Larry Fitzgerald in the slot. Reality doesn’t grade on a curve—those yards are yards no matter who the receiver is—but it should be said that Munnerlyn outperformed my expectations, like he has in basically every game this season. This means I should adjust my expectations, sure, but it also means that Munnerlyn is playing extremely well. I don’t know if the Vikings will let him walk despite that second-round pick replacement sitting there with him on the roster.

As for Terence Newman, he continues to be quiet. A good thing for a cornerback, and he was targeted less often per coverage snap than any of the other CBs. While this is counterbalanced by his relative absence in the run game, it’s a tradeoff that any Vikings fan will take.

Trae Waynes was an extremely up-and-down player like Kendricks. While some may want to argue with the calls he received, to my eye they actually looked like pretty legitimate calls. With those penalties in mind, the Cardinals flew into scoring position as a result of Waynes, but couldn’t throw a touchdown to seal the deal… because of Waynes.

It’s better if it never happened at all, and Waynes clearly has a lot of learning to do, but having a few exciting plays in coverage to offset some enormous mistakes is at least a sign of excellent potential, not to mention that Waynes was more effective in the run game than any other defensive back, Harrison Smith included.

The Cardinals decided that running up the middle wasn’t a sound strategy with Joseph in, so they continued to design or bounce runs to the outside, where Waynes was waiting. It’s extremely unusual for a cornerback to log five tackles in the running game, especially with three as “stops” for the defense. He deserves credit for that.

Offense

The offense is less exciting to write about than the defense, but they are worth more regard than they’ve been given. It’s true that they are extraordinarily bad in short-yardage, but they are just more effective overall as a unit than they have been. It’s another game where they’ve produced a league-average rate of points per drive and an above-average rate of first down production, and Shurmur deserves a lot of credit for that.

Not only because of exciting, obvious factors like trick plays, but consistent factors that minimized weaknesses and emphasized strengths appeared as well. Sam Bradford got rid of the ball an average of 2.18 seconds after receiving it, a number that feels closer to Tom Brady than anything else.

In fact, Brady had an unusually quick start to the 2015 season, where his time-to-throw averaged 2.09 seconds. That ended up regressing back towards a mean closer to 2.5 seconds, but it should be noted that the quickest anyone had logged over the course of the season was Peyton Manning at 2.24.

The point is, Shurmur designed a quick game for Bradford, and he largely executed. I wouldn’t go too far in lauding him; he made a number of errors that were sometimes papered over by the skill of the receiver or a well-timed penalty from Arizona, but he was not a liability and performed at a level at or above the level of an average quarterback. His worst-looking play, an interception that popped right out of Marcus Cooper’s hands, was Cordarrelle Patterson’s fault, and his decisionmaking allowed the offense to take advantage of the space they had.

While he did hold on to the ball too long on his sacks and had some ball placement errors in the game, I don’t think there’s any reason he should be criticized unduly from this game moving forward.

The offensive line kept Bradford surprisingly clean. Is it because he got rid of the ball quickly?

Yes.

Sure, Alex Boone and Joe Berger had another workman-like game where they performed as both excellent run-blockers and pass protectors, while Brandon Fusco did better than he has in the past two games in both of those elements. But the edges, and particularly Jeremiah Sirles, kept getting beat. They only gave up two sacks in the process, including a particularly bad one where Sirles got spun like a top, but they didn’t allow too many pressures simply because getting beat off the snap didn’t mean Bradford couldn’t get rid of the ball.

As run blockers, Sirles and Fusco were problematic while Clemmings showcased good with the bad. His ability to get downfield and block at the second level may have been the best I’ve ever seen it, but he did lose a couple of run-blocking reps at the first level. It’s probably worth it, but the bigger point is that this kind of improvement would be fantastic to see over the rest of the season.

#Vikings OT play really reaching new lows…how the heck am I supposed to grade a sack like this? pic.twitter.com/GVRICIOH7q — Jon Ledyard (@LedyardNFLDraft) November 22, 2016

The receivers may not seem like they earn much in the way of positive grades; after all Cordarrelle Patterson’s best play wasn’t so much as a receiver as it was returner, and he caused two near-interceptions through his mistakes. Adam Thielen was fun to watch, but he did do most of his work against one of the biggest liabilities on defense. Still, they deserve praise.

Stefon Diggs seemed nonexistent, but he actually did pretty well given his assignment against Patrick Peterson and reeled in catches that moved the chains.

The Stefon Diggs vs Patrick Peterson scorecard: 6 Targets 5 Recs 35 Yards 0TDs, 0 INTs — Sam Monson (@PFF_Sam) November 20, 2016

The bigger problem might be that the Vikings are all too willing to limit Diggs in the case where they have a somewhat difficult matchup and turn him into the Minnesota Vikings version of Jarvis Landry. He’s proven that he can be a threat at all three levels in several games this year, but the constraints he’s had put on him have conversely allowed Pat Shurmur to scheme open players like Thielen and Patterson.

Not only that, Thielen deserves more than a cursory mention about the strength of his competition, as he showcased excellent route-running, athleticism and body control throughout the day—an inconsistently called offensive pass-interference penalty marred his otherwise excellent performance. He’s clearly a starting-quality receiver at this point.

Also, Patterson may have committed consecutive errors that could have led to a massive swing in the game, but even aside from his kickoff return, he’s still showing better receiving skills this year than he has all of his career. Not only that, his screen passes are a critical part of the Vikings generating first downs without a running game.

Speaking of that running game, I thought Jerick McKinnon and Matt Asiata both played well despite their numbers (2.8 yards per carry and 4.0 yards per carry, respectively—though Asiata averaged 2.75 yards a carry outside of one run).

McKinnon averaged a phenomenal 2.5 yards after contact, which also means he was contacted an average of 0.3 yards behind the line of scrimmage—an even worse mark than almost every game this year, except for a fateful Week 9 matchup where he somehow had to deal with negative yards before contact.

Last week, some of this had to do with several poor decisions on McKinnon’s part and were in some respect a problem with his vision and decisionmaking. In this game, his vision was fine, though he did need to be more decisive with some of his runs.

Ronnie Hillman had two runs and now he’s gone. I think the bigger problem with him was pass protection, where both McKinnon (improved since last year) and Asiata (worse than last year, but aside from one game not awful) outshined him.

And of course, Kai Forbath should be lauded for making two of his extra points, with another one blocked through an error of another player, not his own. Also, Jeff Locke had one of the best individual punts and punting performances we’ve seen in a long, long time.

It was a fantastic game overall, and should rightly instill confidence in fans.