If only Jared Goff could face the Arizona Cardinals every week. 

Going into Week 15, the Lions quarterback had a 7-1 career record against the Cardinals, including 3-0 against Kliff Kingsbury, and he continued to terrorize them on Sunday. Goff threw three touchdown passes as the Lions beat the Cardinals 30-12 in what might go down as the most shocking upset of the 2021 season. 

If you're wondering how surprising this win was, just consider this: It marked just the third time since 1970 that the team with the NFL's worst record beat a team with the best record (or tied for the best record) when each team has played at least eight games. 

On a paper, this game seemed like a total mismatch, but Goff quickly took that paper and set it on fire during a nearly perfect first half where he threw two touchdown passes. 

It was clear pretty early that the Lions might be able to pull off an upset in this game. On their first possession, Goff drove them 63 yards for a field goal. The only thing more impressive than that drive was what the Lions did on the next drive. Starting at his own 7-yard line, Goff led the Lions on a 93-yard jaunt that ended with a 37-yard touchdown pass to Amon-Ra St. Brown

Goff has had some trouble taking care of the ball this year, but against Arizona, he was nearly perfect, going 21 of 26 for 216 yards and three touchdowns. His best throw of the day probably came on his second touchdown when he threaded the needle just before halftime to hit Josh Reynolds with a 22-yard score. 

The fact that Goff was so thoroughly able to outduel Kyler Murray was just as much of a surprise as the Lions' win itself. 

The win over the Cardinals is a testament to what Dan Campbell is doing in Detroit. This team could have quit on him at any point this season -- you know, like the Jaguars did to Urban Meyer -- but every week, he has this team playing hard, and every week, it seems capable of possibly pulling off an upset. 

This upset was especially surprising in part because Arizona hadn't lost a road game all season. Unfortunately for the Lions, there's actually a downside to winning and that's the fact that they no longer control the path to the No. 1 overall pick in the 2022 NFL Draft. With the Jaguars losing, the Jags are now in line to get the pick if they lose out. 

Alright, let's get to the grades for every game from Week 15. If you're looking for a deeper dive on Kansas City's wild win over the Chargers that was played on Thursday, be sure to click here.

Indianapolis 27-17 over New England (Saturday)

One reason the Patriots have been so good this year is because they don't generally make a lot of costly mistakes, but they made a lot of them on Saturday night. In what was easily the ugliest mistake of the night for New England, the Colts blocked a Patriots punt in the first quarter and returned it for a touchdown. Mac Jones also threw interceptions, including one that came inside of Indy's 15-yard line just before the end of the first half. Although the Patriots' defense got gashed up by Jonathan Taylor, the performance wasn't as bad as it looked. Before Taylor's 67-yard TD run with 2:01 left to play, the Patriots' defense had only surrendered 210 yards of total offense in the game. Despite getting a decent defensive effort for most of the game, Bill Belichick is probably going to be fuming all week after his team's overall performance. 
The Colts' formula for winning games this season has been pretty simple: Give the ball to Taylor on offense and then let their defense do the rest. Once again, that formula worked like a charm. Taylor steamrolled the Patriots' defense for 170 yards, including a 67-yard TD with two minutes left to play that iced the win. The Colts are now 8-0 this year when Taylor rushes for 100 yards or more. Defensively, the Colts came up with multiple big plays, including two interceptions. And the biggest surprise of the game came from E.J. Speed, who recovered a blocked punt in the end zone for a Colts touchdown. Heading into Week 9, the Colts were on the fringe of the playoff race, but after this win, they now control their own fate. 

Patriots-Colts grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

Detroit 30-12 over Arizona

In what might go down as the most surprising loss by any NFL team this season, the Cardinals went into Detroit and got destroyed by the Lions. The Cards' offense looked completely out of sync and it was especially bad in the red zone on a day where it came away with zero touchdowns on four trips inside of Detroit's 20. The Cardinals' defense was equally bad as it had no answers for Jared Goff or running back Craig Reynolds. Two weeks ago, the Cards looked like a favorite to win the top seed in the NFC, but now they might not even win the NFC West. 
The only thing more impressive than Goff's performance was the play of Detroit's defense, which absolutely shut down Kyler Murray. The Lions held the Cardinals to zero points in the first half and didn't let Arizona score a TD until garbage time in the fourth quarter. Offensively, Craig Reynolds came out of nowhere to help carry the offense. The running back, who only had 87 rushing yards in his career going into this game, totaled 112 rushing yards against the Cardinals. 

Cardinals-Lions grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

Houston 30-16 over Jacksonville

The Texans didn't play a perfect game, but they seemed to get a big play whenever they needed it. All three of Houston's touchdowns came from at least 20 yards out, including a 98-yard kickoff return for a touchdown by Tremon Smith in the first quarter that gave Houston an early 14-3 lead. Not to be outdone, Brandin Cooks also came up with two monster plays in the form of two touchdown catches that came from 43 and 22 yards. Texans QB Davis Mills continues to look a little bit better every week and David Culley's decision to start his rookie for the rest of the season is looking like it was the right one.
The Jaguars were a bad team before the arrival of Urban Meyer and it appears they're still a bad team after the exit of Urban Meyer. The Jaguars' offense couldn't convert a third down, their defense couldn't stop Cooks and their special teams gave up a kickoff return for a touchdown. The Jaguars were a disaster all around. If anyone was hoping to see some improvement after the firing of Meyer, they're going to have to wait until at least next week, because that improvement didn't come this week.

Texans-Jaguars grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

Miami 31-24 over N.Y. Jets

The Jets got off to a hot start in this game, but then their offense completely disappeared in the second half. After jumping out to a 17-7 lead, the Jets watched the game slip away during an ugly second half where they only totaled 54 yards. A big reason they couldn't move the ball is because their offensive line couldn't protect Zach Wilson, who got sacked six times. Wilson also lost a fumble on New York's only possession of the second half that actually reached Miami territory. The second half was basically an offensive nightmare for the Jets. 
The Dolphins seem to find a new way to win every week and this week, it involved giving the ball to Duke Johnson. In just his second game of the 2021 season, Johnson ran for 107 yards and two touchdowns on 22 carries. Johnson was the one bright spot for a Dolphins offense that had an up-and-down day. Tua Tagovailoa threw two interceptions, including an ugly pick-six, but he also led a game-winning TD drive in the fourth quarter. Defensively, Jerome Baker recorded two of Miami's six sacks. The Dolphins' defense was basically a brick wall in the second half, holding the Jets to just 54 yards of offense. The Dolphins have now won six in a row as they continue to keep their faint playoff hopes alive. 

Jets-Dolphins grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

Dallas 21-6 over N.Y. Giants

It was yet another fantastic outing for the Cowboys' defense, one that easily grabs the unit an "A+" for its efforts in pummeling Mike Glennon into a variety of mistakes that included three interceptions. DeMarcus Lawrence made his presence felt, contributing to one of the interceptions and forcing a rare fumble by Saquon Barkley that was recovered by the Cowboys -- continuing his dominance in his return from IR this month. The secondary plucked INTs like grapes off of a vine and it took another uneven performance by Dak Prescott (and CeeDee Lamb) to pull this grade down, in what should've otherwise been a blowout win at MetLife Stadium.
This game never once felt as if the Giants had a chance to win, even when they were randomly making plays. The problem was those plays didn't pay off with anything other than a couple of field goals, as Glennon and the offense stalled time and again and Joe Judge refused to give Jake Fromm a look until it was too late -- only to then see Fromm play better in one series than Glennon had in nearly four quarters. Kudos to the defense for helping to make things tough for Prescott, but this was yet another throwaway game for Big Blue.

Cowboys-Giants grades by Patrik Walker (Love the grades? Hate the grades? Let him know on Twitter.)

Pittsburgh 19-13 over Tennessee

Turnovers and lack of red-zone execution spoiled an impressive performance by the Titans' defense. The turnovers also spoiled a stellar performance from running back D'Onta Foreman, who ran for 108 yards on 23 carries. An overlooked moment in Sunday's game was Titans' 10-minute drive in the second quarter. Instead of punctuating the drive with a touchdown, the Titans were forced to settle for a field goal after Tannehill was sacked by Cam Heyward and T.J. Watt. Penalties also cost the Titans, particularly two defensive penalties on the Steelers' only touchdown drive and a roughing-the-passer penalty on the Steelers' game-tying drive.
It's hard to lose when your defense forces four turnovers, as was the case for the Steelers on Sunday. Each of Chris Boswell's four field goals were byproducts of turnovers forced by Pittsburgh's defense. The Steelers' defense also held the Titans to 1 of 4 red-zone efficiency that included their stop on Tennessee's final possession. The Steelers' offense left a lot to be desired, but didn't turn the ball over, which proved to be the difference in Sunday's game.

Titans-Steelers grades by Bryan DeArdo (Love the grades? Hate the grades? Let him know on Twitter.)

Buffalo 31-14 over Carolina

Carolina is just looking to play out the string. Already ravaged with injuries, the Panthers had to play with no field goal kicker after Zane Gonzalez injured his quad in warmups -- leaving points on the board after having to go for it on fourth down every time. The Panthers finished 1 of 5 on fourth down, which could have been better if Cam Newton was more accurate throwing the football (he completed just 47.4% of his passes). Carolina's offensive line was beaten badly by Buffalo up front, a unit the Panthers have to fix this offseason. It's time for Carolina to start scheduling time on the golf course.
This win certainly wasn't pretty for the Bills, yet they found a way to beat a reeling Panthers team and gain ground on the Patriots in the AFC East race -- setting up a showdown for first place in the division next week. Buffalo rushed for 119 yards -- including 86 and a touchdown from Devin Singletary -- and averaged 4.4 yards per carry (on 27 carries). The offense took the load off Josh Allen, who rushed just one time for 26 yards (not counting kneel-downs). Buffalo's defense held Carolina to 275 yards and 1 of 5 on fourth down, sacking Newton four times in the win. The Bills still have problems stopping the run, but nearly half of the 151 yards they gave up came from Newton's legs. Buffalo took care of business against a reeling Panthers team, setting the stage for New England next week. Regardless, the Bills look in great shape to return to the playoffs. 

Panthers-Bills grades by Jeff Kerr (Love the grades? Hate the grades? Let him know on Twitter.)

San Francisco 31-13 over Atlanta

When it comes to running plays from the goal line, the Falcons might want to throw their current playbook in the trash and start from scratch after the disaster they had in San Francisco. The Falcons got inside San Francisco's 10-yard on three different drives in this game, but they came away with a total of ZERO points. The most embarrassing part for the Falcons is that they ran FIVE plays from the 49ers' 1-yard line and didn't score on a single one of them. If the Falcons could have scored on just one of their trips that went deep in 49ers territory, this would have likely been a completely different game, but instead, they couldn't do anything in the red zone, which is one reason why this game turned into a blowout. 
The 49ers' offense lit up the scoreboard, but it was their defense that came up with most of the big plays in this win. On three different possessions, the Falcons had a fourth-and-1 inside of San Francisco's 10 and all three of those possessions, the 49ers stopped them cold, including two separate fourth downs that came from the 49ers' 1-yard line. The 49ers' defense also had three sacks, including a Nick Bosa strip-sack of Matt Ryan that set up a TD in the third quarter. Offensively, the 49ers didn't miss a beat with Eli Mitchell out and that's because Jeff Wilson came in and rushed for 110 yards and a TD. Deebo Samuel also continues to be a huge problem for opposing defenses as he scored his seventh rushing TD of the season, which is the most by a receiver since 1961. With the win, the 49ers have put themselves in a spot where they should be able to earn a wild card berth as long as they don't completely collapse down the stretch. 

Falcons-49ers grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

Cincinnati 15-10 over Denver

You can't be hard on the Bengals since they got a much-needed win, but we didn't get a very inspiring performance from the offense. Joe Burrow passed for 157 yards and one touchdown while Joe Mixon rushed for 58 yards on 17 carries. The offense wasn't racking up points this Sunday, but the defense stepped up when it mattered most. The Bengals forced a turnover in the red zone and didn't allow Drew Lock to orchestrate a game-winning drive. They also got three huge field goals from Evan McPherson, including a 58-yarder just before halftime that set the franchise record for distance.
Broncos fans spent the afternoon booing their offense. Drew Lock threw a touchdown after replacing the injured Teddy Bridgewater, but also fumbled in the red zone on what could have been the game-winning drive. The defense played inspired football at times but the offense could never hold up its end of the bargain.

Bengals-Broncos grades by Jordan Dajani (Love the grades? Hate the grades? Let him know on Twitter.)

Green Bay 31-30 over Baltimore

Aaron Rodgers was masterful throughout this game and tied Brett Favre for the Packers all-time passing touchdown record. After a three-and-out to begin the game, Green Bay went on a scoring spree where it would find the end zone in four of its next five offensive drives. This was a pretty tight game that came down to the wire, so both of these teams will be graded relatively closely. The Packers get the edge because they pulled out the win, but there are still a couple of concerns as the NFC North champions move forward. Their special teams unit continues to play poorly and defensively they had no answer for Tyler Huntley and tight end Mark Andrews, who were able to nearly get the last-second win. That'll need to improve when they face stiffer competition in the future.  
You have to give Baltimore a lot of credit. With all the players they have missing, they were able to go toe to toe with one of the best teams in the entire NFL. The moment was not too big for Huntley and the second-year quarterback played extremely well. He threw for two touchdowns and ran for a couple more as well in the loss, and nearly pulled off the upset by scoring a late touchdown with less than a minute to play. You can question John Harbaugh's decision to attempt the 2-point conversion following that fourth-quarter touchdown rather than kick the extra point and play for overtime, but Huntley and the offense were moving at an efficient clip at the time. Defensively, they really struggled to contain Aaron Rodgers, who completed nearly 75% of his passes and threw for three touchdowns. When you have a backup quarterback under center, the defense needs to step up more than it did as there were a number of instances where Ravens defenders struggled to tackle.

Packers-Ravens grades by Tyler Sullivan (Love the grades? Hate the grades? Let him know on Twitter.)

New Orleans 9-0 over Tampa Bay

If you shut out the defending Super Bowl champions in their own building, you get an "A". If you do it without your head coach, you get an "A+". I don't make the rules. This game marked the first time in Tom Brady's career that he's been shut out in a home game and just the third time it has happened at all. 
The defense actually played quite well, albeit against an offense that doesn't have much in the way of threatening options at the moment. But the offense was a disaster, even before Mike Evans, Chris Godwin, and Leonard Fournette left the game with injuries. Saints DC Dennis Allen really appears to have this team's number, and that's not ideal.

Saints-Buccaneers grades by Jared Dubin (Love the grades? Hate the grades? Let him know on Twitter.)

Las Vegas 16-14 over Cleveland (Monday)

With three minutes left to play in the game, it looked like Derek Carr had just thrown away the Raiders' season with a late interception, but then he redeemed himself just minutes later with a game-winning drive. Thanks to a defensive stop after the pick, the Raiders got the ball right back and Carr took advantage of it by throwing for 41 yards over the final 1:50 to set up Daniel Carlson's game-winning field goal from 48 yards away. Carlson's kick saved the Raiders from what would have been an embarrassing loss to a Browns team that was missing 18 players and their head coach. The game-winning drive was huge for Carr, because the Browns only got back in the game due to two second-half turnovers on his end. Thanks to the win, the Raiders kept their faint playoff hopes alive. 
Despite having 18 players out due to COVID, including eight starters, the Browns were still able to almost pull off a miracle win. The defense kept things close by forcing two turnovers and holding the Raiders to just one touchdown, but it melted down on Vegas' final possession. Offensively, Nick Mullens played as well as you can expect a third-string QB to play and his numbers would have been even better if the Browns weren't plagued by drops, including an ugly one by Donovan Peoples-Jones on a deep pass in the first quarter. Also, the coaching staff seemed to forget about the existence of Nick Chubb in the first half. Chubb was only given the ball six times, but the Browns made up for it by giving him the ball 17 times during a second half where he rushed for 79 yards. One problem for the Browns that wasn't COVID-related was the play of kicker Chase McLaughlin, who missed a key 47-yard field goal attempt on the final play of the first half. 

Raiders-Browns grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

Minnesota 17-9 over Chicago (Monday)

It's a good thing ugly wins count as much as other wins in the NFL, because this one was about as ugly as it gets. The Vikings scored on their first two possessions and then basically let their defense do the rest and the defense responded by absolutely shutting down the Bears. In this defensive masterpiece, the Vikings forced three turnovers, stopped the Bears on three fourth downs, sacked Justin Fields three times (all by D.J. Wonnum) while limiting the Bears to just three points on four trips to the red zone until a garbage-time TD on the final play. Offensively, Justin Jefferson (47 yards) and Dalvin Cook (91 total yards) provided nearly 75% of Minnesota's total offensive yardage in the game. The most important thing for the Vikings is that the win means that they're back in the thick of the playoff race. 
This game was just one disaster after another for a Bears offense that couldn't get out of its own way. In the first 58 minutes of this game, the Bears got into Vikings territory a total of seven times, but only came away with one score (a field goal). On the other six possessions, the Bears had three failed fourth downs, two lost fumbles and a missed field goal. There were so many mistakes that it was almost painful to watch. The only redeeming factor in this game for the Bears was the play of their defense. The Bears sacked Kirk Cousins four times and limited the Vikings to just 193 yards, which was a big reason why this game didn't turn into a blowout despite the offense's inability to score touchdowns. 

Vikings-Bears grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

L.A. Rams 20-10 over Seattle (Tuesday)

Since returning from his finger surgery, Russell Wilson hasn't looked great and this game was no different. Wilson struggled with his accuracy with his most notable miss coming when he underthrew a wide open DK Metcalf for a possible game-tying TD in the fourth quarter. Of course, the officiating crew didn't do Seattle's offense any favors in this game as it missed an obvious pass interference call on a fourth down late in the game. Despite the offensive struggles, the Seahawks were able to keep this game close thanks to one of their best defensive performances of the season. Carlos Dunlap terrorized Matthew Stafford on a night where he recorded three of Seattle's four sacks.  
The Rams defense did a great job of bottling Russell Wilson and then Los Angeles let Cooper Kupp do the rest. The wide receiver, who probably should be in the MVP conversation at this point, caught nine passes for 136 yards while also scoring the Rams' only two touchdowns. As for that defensive performance defense, Aaron Donald, Leonard Floyd and Von Miller all sacked Russell Wilson once in a game where the Seahawks offense only had two possessions in the entire game that went for more than 27 yards. 

Seahawks-Rams grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)

Philadelphia 27-17 over Washington (Tuesday)

Considering Washington was being quarterbacked by a player (Garrett Gilbert) who wasn't even on the team's roster a week ago, the offense actually played pretty well. Surprisingly, it was Washington's rush defense that let the Football Team down. Going into the game, Washington had surrendered the fourth-fewest rushing yards in the NFL, but they got gashed up by Philadelphia to the tune of 238 rushing yards. Although the Football Team's defense did force a turnover on each of Philly's first two possessions, they did nothing after that. As for Gilbert, the 2014 NFL Draft pick threw for 194 yards and made mostly smart decisions while making just the second start of his career. 
The Eagles had the NFL's best rushing offense going into this game and that's not going to change after a night where they absolutely steamrolled Washington. The Football Team had no answer for a Philly offense that rolled up 519 total yards, including 238 on the ground. The yardage total was the most the Eagles have had in a game since Week 8 of 2014 when they put up 521. The offense was basically able to move the ball at will and that was mostly thanks to Jalen Hurts, who had one of his best passing games of the season with 296 yards and a TD. Miles Sanders also caused problems for Washington, carrying the ball 18 times for 131 yards. If the Eagles didn't fall on their face to start the game, this probably would  have been an 'A', but they had two ugly turnovers in the first quarter that led to 10 points for Washington. 

Washington-Eagles grades by John Breech (Love the grades? Hate the grades? Let him know on Twitter.)