Getty Images

For the first half of the season, Patrick Mahomes kind of got left out of the MVP conversation, but that's likely going to change this week after the Chiefs quarterback almost single-handedly staved off an upset attempt by the Carolina Panthers during Kansas City's wild 33-31 win on Sunday. 

In a game where the Chiefs only rushed for 30 yards, they needed everything Mahomes had to offer and he came through with 372 passing yards and four touchdowns, including two to Tyreek Hill, who finished with nine catches for 113 yards. 

The Chiefs spotted the Panthers an early 14-3 lead, but after that Mahomes took over. The quarterback's first scoring pass in the game came on a one-yard throw, and although a one-yard pass isn't generally something that's worth showing you a highlight of, this one was. On the play, not only did the Chiefs send Mahomes into motion, but he caught the shotgun snap while still in motion and then he did this ... 

It's almost not fair. That one-yard pass to Demarcus Robinson cut Carolina's lead to 14-13 just before halftime, and after the score it felt like there was no way Mahomes was going to let the Chiefs lose. 

Craving even more NFL coverage focusing on previews, recaps, news and analysis? Listen below and subscribe to the Pick Six podcast for a daily dose of everything you need to follow pro football. 

Although Carolina's offense went toe-to-toe with Kansas City, Mahomes just made too many big plays. With the Chiefs trailing 17-13 in the second half, Mahomes led Kansas City to a touchdown on three consecutive possessions, and all of a sudden the four-point deficit had turned into a 33-24 lead. 

The Chiefs quarterback threw three touchdown passes in the second half, and one of those was a 28-yard score to Hill in that gave Mahomes 100 touchdown passes for his career, which is notable because it made him the fastest player in NFL history to reach 100 career touchdown passes

The pass to Hill helped Mahomes reach 100 touchdowns in just 40 games, which topped Dan Marino's record of 44 games that had stood for 34 years.  

The quarterback who won the MVP award in 2018 should now be considered the frontrunner to win it in 2020. For the first eight weeks of the season, Russell Wilson became the frontrunner thanks to Seattle's decision to "Let Russ Cook," but Wilson has burnt himself in the kitchen in two of the past three weeks.

There have been other quarterbacks -- like Aaron Rodgers, Tom Brady and Josh Allen -- who have been good, but Mahomes has been great. He went into Sunday's game with 20 touchdown passes and one interception on the season, which is notable because no other quarterback in NFL history had ever thrown 20 or more touchdowns with one or fewer interceptions through eight games, and now he's added to that. Through nine games, Mahomes has been nearly perfect, throwing for 2,687 yards and 24 touchdown passes along with that one pick. 

Mahomes just hasn't been making any mistakes, and the Chiefs are nearly impossible to beat when he's not making mistakes, as the Panthers found out on Sunday. 

Alright, let's get to the grades for every game from Week 9. If you're looking for a deeper dive on the Packers-49ers game that was played Thursday, be sure to click here.

Kansas City 33-31 over Carolina

The Panthers went into this game with a nearly perfect game plan, but they weren't quite able to come away with the upset. The return of Christian McCaffrey provided an instant spark for Carolina's offense, as he totaled 151 yards and two touchdowns. With McCaffrey playing so well, the Panthers were able to control the pace of the game, which kept Mahomes off the field. Carolina had the ball for 38:01 compared to just 21:59 for Kansas City. Since the start of the 2019 season, NFL teams had been 19-2 in non-overtime games where they had the ball for 38 or more minutes. 
It's a good thing Patrick Mahomes brought his 'A' game, because no one else really did for Kansas City. The Chiefs had no run game and their defense got lit up. As a matter of fact, the Chiefs defense is probably going to want to forget this game ever happened, as the Panthers racked up 435 yards of offense while going 3 of 3 on fourth down. As for that run game, it totaled just 30 yards, which is the second-lowest number the team has ever recorded under Andy Reid, who was hired in 2013. Although Mahomes didn't get much help from Kansas City's ground game, he did get some serious help from Tyreek Hill (nine catches, 113 yards, two touchdowns) and Travis Kelce, who caught 10 passes for 159 yards

Atlanta 34-27 over Denver

For the second straight week, the Broncos dug an early hole for themselves, but they weren't able to dig out of it this time around. At one point in this game, the Broncos trailed 27-6, but then they stormed back to cut the lead to 34-27. They had the ball with a chance to win, but Drew Lock threw three straight incompletions before losing a fumble. Basically, it was too little too late. Defensively, the Broncos had no answers for a Falcons offense that scored on its first four drives. 
The old Falcons might have lost this game after jumping out to a 27-6 lead, but this looks like a new team under interim coach Raheem Morris. The Falcons improved to 3-1 with Morris, and a big reason for that is due to the play of an offense that came out on fire. On Atlanta's first three possessions, Matt Ryan went 14 of 18 for 166 yards and two touchdowns as the Falcons shot out to a 17-0 lead. After that, it was all about hanging on, which the Falcons actually managed to do. Defensively, the Falcons keep improving each week and the unit even came up with a big play in this game when they picked off Drew Lock in the third quarter, which led to an Atlanta touchdown just two plays later.  

Minnesota 34-20 over Detroit

Matthew Stafford didn't practice all week, and it definitely showed in this game. The Lions quarterback threw two interceptions, including a back-breaking pick in the third quarter that came after Detroit drove all the way down to Minnesota's 5-yard line. Of course, the Lions might not have won even if Stafford had played a perfect game, and that's because Detroit's defense got absolutely steamrolled by a Vikings rushing attack that piled up 275 yards on the ground, which is the most the Lions have surrendered in any game since 2013. If Matt Patricia wasn't on the hot seat before, he's definitely back on it now. 
It's not quite Thanksgiving yet but Dalvin Cook probably felt like it was after he spent his Sunday feasting on the Lions defense. One week after going off for 163 yards, the Vikings running back topped himself by crossing the 200-yard mark for the first time in his career (206 yards). Everything was working offensively for the Vikings, who also got a strong performance from Kirk Cousins. Cousins completed his first four passes for 83 yards on Minnesota's first two possessions, which helped the Vikings jump out to an early 13-0 lead. After being left for dead in the playoff race just two weeks ago, the Vikings are slowly clawing their way back into contention. 

Houston 27-25 over Jacksonville

It's a good thing the Texans didn't trade Will Fuller, because they absolutely needed him on Sunday. Fuller caught five passes for 100 yards, including a 77-yard score in the third quarter that ended up providing the game-winning points for Houston. Fuller's TD was one of two touchdown passes that Deshaun Watson had in the game that went for more than 50 yards (Brandin Cooks had a 57-yard score in the first quarter). The Texans defense wasn't great, but it did come up with a key interception in the third quarter that set up Fuller's TD. The Texans also came up with a big stop on a two-point conversion attempt by Jacksonville in the waning seconds that would have sent the game to overtime. 
Whatever the expectations were for Jaguars rookie QB Jake Luton, he definitely exceeded them on Sunday. Things started off with a bang for Luton, who threw a 77-yard TD to D.J. Chark on the second throw of his NFL career. Although Luton did struggle a little bit, he played well enough to give the Jaguars a chance to win (26 of 38, 304 yards). The Jaguars defense actually played pretty well, but it got killed by two big touchdown passes by the Texans that went for 77 and 57 yards. Outside of those two plays, the Jaguars only gave up 242 yards in the game. 

N.Y. Giants 23-20 over Washington

The Giants entered Week 9 with the second-worst offense in terms of yards per game and also averaged just 18 points per game before Sunday. The Giants surpassed that mark in just the first half with 20 points scored, and it was a big reason they were able to hold on for a 23-20 lead. They did allow Alex Smith to mount a comeback in the second half, but they picked him off a total of three times, including two in the final minutes of the game when Washington was trying to engineer a game-winning drive. I'm not sure how much you can read into this victory, considering Washington seems to be the only team Jones can beat (four of his five career wins are against Washington).
Give credit to Alex Smith for being able to come in off the bench and throw for 325 yards and a touchdown. Unfortunately, his three interceptions were the difference in this game, but you can probably chalk that up to rust. Washington's defense had its moments but overall was not too impressive. With Kyle Allen now out due to an ankle injury, you have to wonder who Ron Rivera will roll with under center. Will it be Smith, or could Dwayne Haskins return to the starting lineup?

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

Buffalo 44-34 over Seattle

Seattle came out of the gate flat both offensively and defensively. As Russell Wilson and company were shut out in the first quarter, the Bills dropped 14 points and never looked back. Wilson seemed to be pressing a number of times throughout the game, specifically when targeting Tyler Lockett. That duo connected on just four of their seven targets for 40 yards. On top of failing to protect Wilson, the Seahawks offense was inefficient on third down (25% conversation rate). While Wilson did commit four turnovers, the Seattle defense couldn't stop the Bills offense at all, creating even more pressure for the offense to come away with touchdowns on every possession, which is unsustainable. If they don't fix that defense soon, it could become a fatal flaw.
You can't ask for anything more than what the Buffalo Bills gave Sean McDermott in Week 9. Offensively, Josh Allen's unit was superb. The third-year quarterback threw just four incompletions in the first half to go along with 282 yards through the air and three touchdowns. Allen finished with 415 passing yards and four total touchdowns in the win. Meanwhile, the 34 points allowed may not tell the entire story about how much the Bills defense disrupted Russell Wilson. Not only did they sack him five times, but that pressure helped create four turnovers on the afternoon. When Buffalo plays like this, not many teams in the league will be able to stop them. 

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

Tennessee 24-17 over Chicago

While they put together three fourth-quarter scoring drives, the Bears squandered far too many scoring opportunities earlier in the game. One of those opportunities came after Barkevious Mingo picked up a first down on Chicago's fake punt at the start of the second quarter. The Bears punted four plays later after David Montgomery was stonewalled on a third-and-2 from the Titans' 45-yard line. On their first possession of the second half, the Bears reached the Titans' 31-yard line before two false start penalties forced another punt. The Bears received solid performances on offense from quarterback Nick Foles (who attempted 52 passes) and receivers Allen Robinson and Anthony Miller. Defensively, the Bears continue to receive stellar play from linebacker Roquan Smith, who recorded one of the Bears' three sacks on Sunday while also leading the team in tackles.
For three quarters, Tennessee enjoyed a stellar performance from its defense, as the Titans applied consistent pressure on Bears quarterback Nick Foles. They also received a 63-yard fumble return for a touchdown by newcomer Desmond King. Tennessee also contained the Bears' rushing attack while forcing Chicago to become one-dimensional. On offense, Tennessee took care of the ball while maintaining balance as far as play calling was concerned. The Titans enjoyed a stellar performance from receiver A.J. Brown, whose 40-yard touchdown catch in the second quarter extended his streak of catching a touchdown pass to five games.

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

Baltimore 24-10 over Indianapolis

The Baltimore offense was not asked to do much against the Colts Sunday, which is good because it was absent for most of the game. However, the defense was fantastic and made the big plays necessary to secure victory. Chuck Clark returned a fumble for a touchdown and Marcus Peters was credited with a controversial interception. Baltimore's offense had two fumbles of its own in a game where it just couldn't get anything going. 
Philip Rivers played very poorly in Sunday's loss. Indianapolis' defense did everything necessary to keep this game close for awhile, but a lack of contributions from the offense made it difficult to keep pace with a generally dynamic offense. If the Colts are going to make the playoffs and be a factor, the offense will need to self-assess and become more consistent. 

Ravens-Colts grades by Josh Edwards (Love the grades? Hate the grades? Let him know on Twitter.)

Las Vegas 31-26 over L.A. Chargers

For most of four quarters, the Raiders couldn't stop the Chargers offense, but then they finally made a stop when it counted most. The Chargers had three chances to win this game by scoring from the 4-yard line, but the Raiders foiled every single one of them. Two of the stops came from Isaiah Johnson, who broke up two passes in the final six seconds. Offensively, the Raiders played just well enough to win. Although Derek Carr only completed 56.5% of his passes, he made up for that by coming through with several big plays, including two passes that went for more than 40 yards (including a 45-yard TD pass to Nelson Agholor). The fact that Carr went just 13 of 23 didn't really hurt the Raiders, and that's because the Chargers couldn't stop the Raiders' ground attack. Thanks to Devontae Booker (eight carries, 68 yards, 1 TD) and Josh Jacobs (14 carries, 65 yards, 1 TD), the Raiders were able to average an absurdly amazing 6.15 yards per carry with 160 rushing yards on 26 carries. Carr also chipped in on the ground with a wild 12-yard run on third-and-10 that kept a Vegas TD drive alive in the third quarter. 
In a season of heartbreaking losses, the Chargers were dealt another one on Sunday. The Chargers appeared to have the victory wrapped up after Justin Herbert hit Donald Parham for a four-yard TD on the final play of the game, but the score was overturned after a review showed that the ball hit the ground. The play capped a disastrous final eight minutes for the Chargers, who also lost a fumble on a punt return. The turnover led to a field goal for the Raiders. If that hadn't happened, the Chargers would have only needed a field goal to win on their final drive. In what's starting to become a weekly thing, Herbert had another impressive showing despite the loss. The rookie quarterback threw for 326 yards and two touchdown and drove the team to within one yard of the win. 

Pittsburgh 24-19 over Dallas

When you enter a game as a two-touchdown favorite, the expectation is you'll blow out the opponent. That's even more the case when you're undefeated through seven games while said opponent is 2-6, but the Steelers instead found themselves in a back alley brawl with the Cowboys, who started their fourth quarterback of the season and have well-known issues protecting their signal callers. It was ugly for the Steelers for much of the first half, in all three phases of the game, but credit them for remembering who they are just ahead of halftime, producing 10 points and a takeaway just before the break. And when they needed to clamp down defensively in the fourth quarter, they did just that, helping their offense get back onto the field to take the lead for the first time late in the contest and never look back. It wasn't perfect by any means, but a win is a win, and style points don't matter in the NFL.
In grand NFL fashion, an expected blowout turned into anything but, and it was because the Cowboys were the only ones on the planet who believed they could actually defeat the mighty Steelers. They came out and played exactly to that mindset, getting an early lead and keeping it to halftime -- the maligned defense shutting down Roethlisberger for much of the first half. Garrett Gilbert is the team's fourth-string QB, but he sure didn't play like one, giving the usually visceral Pittsburgh defense a run for its money before it was allowed to simply pin their ears back in the fourth quarter and brutalize him. In a game the Cowboys were supposed to be destroyed in, they showed they're not tanking for anyone and can at least give a Super Bowl frontrunner a fight. If you're one who believes in moral victories, this is one you can point at and be excited about what's to come in 2021. 

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

Miami 34-31 over Arizona

The Dolphins went into the desert in Arizona and won the slugfest thanks to Tua Tagovailoa. In just his second career start, Tagovailoa led the Dolphins to 10 unanswered points in the fourth-quarter comeback victory. Tagovailoa had a huge run on second-and-4 for 17 yards before firing the game-tying touchdown pass to Mack Hollins on the very next play. Hats off to Brian Flores for trusting his kicker on a fourth-and-1 with the score tied 31-31 with 3:30 left, as Sanders drilled the 50-yard field goal that was eventually the game-winner. The defense deserves a ton of credit for a fumble return touchdown, but also for a crucial fourth-and-1 stop of Chase Edmonds with 5:15 to play and the game tied 31-31. A complete team effort for the NFL's most surprising team. If only they could get their run game going.
A tough loss for the Cardinals and a tough day for Kliff Kingsbury, even though it's hard to question his fourth-and-1 decisions. Chase Edmonds was stopped at the Dolphins' 40-yard line for no gain with 5:15 left in a 31-31 game that had me wondering why not call Murray's number on the play -- especially when he had a career-high 106 rushing yards on the day. Kingsbury played for the tie on fourth-and-1 on Arizona's next possession, but Zane Gonzalez's 49-yard field goal fell short with 1:58 to go. Arizona certainly missed Kenyan Drake in this one, though Murray had another excellent performance. Murray's fumble was the game's only turnover and it led to a Dolphins defensive touchdown. The Cardinals are good, but this was a game they should have won. On the other hand, maybe the Dolphins are better than we thought. 

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

New Orleans 38-3 over Tampa Bay

Who says you can't beat Tom Brady and the Bucs twice in one year? New Orleans didn't just do that on Sunday night, either. Sean Payton and Co. absolutely steamrolled Bruce Arians' squad. For all the talk about Brady and his innumerable weapons down in Florida, it was Payton's offense that looked pretty much flawless in prime time, and Brees was an A-plus point guard dishing out touches to almost literally everyone on their skill-position depth chart. Oh, and the defense? Superb. All the stars reminded us why they're stars, and they capitalized on every poor decision and throw by Brady. If you were writing the Saints off as contenders, you'd better reconsider that in a hurry.
Hey, at least Antonio Brown can still catch! There's almost nothing else to say about Tampa Bay's performance, because it was Jets-level bad. Does Tom Brady have his timing down with any of his Pro Bowl-caliber receivers? Did Bruce Arians consider running the ball more than (*checks notes) five times when he realized Brady was not going to throw his way out of trouble early on? The Bucs are not nearly as bad as the score indicated, but they most certainly were on Sunday night. That top-rated run defense is going to be a major concern moving forward, too.

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

New England 30-27 over N.Y. Jets

This came close to being one of the ugliest losses of the Bill Belichick era, but that didn't happen because the Patriots were able to come back from a 27-17 deficit over the final seven minutes of the game. Cam Newton was nearly perfect on the game-winning drive, throwing for 36 yards to set up Nick Folk's 51-yard field goal as time expired. It was fitting that Newton came through on the drive, because he came through for the entire game. Not only did he throw for 274 yards, but he also rushed for two touchdowns. The Patriots got multiple clutch plays from Jakobi Meyers (169 yards receiving), Damien Harris (71 yards rushing) and Rex Burkhead (56 rushing yards and a TD) that allowed them to stave off the upset. 
Apparently, Joe Flacco can still ball. After struggling through his first two starts of the season, Flacco got another start on Monday and the third time was a charm. The Jets quarterback threw for 262 yards and three touchdowns in a game where the Patriots seemed to underestimate his ability to throw long. Flacco went deep early and often, and was mostly successful as he completed four passes of 20 or more yards, including a 50-yard TD to Breshad Perriman. One reason Flacco was so successful is that the Jets receiving corps was finally healthy after being banged up for most of the season. Perriman, Denzel Mims and Jamison Crowder all made big plays. Of course, this is the Jets we're talking about, so there were a couple ugly mistakes and one of the worst was a Flacco interception in the fourth quarter that allowed the Patriots to get back in the game. The only upside in this loss for the Jets is that they're still on pace to take home the ultimate prize in the Trevor Lawrence sweepstakes.