The Carolina Panthers are in the middle of what can only be defined as a lost season, but that hasn't stopped them from picking wins from time to time. The Panthers pulled off a shocking upset of the Denver Broncos in Week 12 to pick up their fourth win of the season, showing that even though things may be bad for them, they could always be worse (yes, we are looking at you Broncos country).

Carolina wasn't given much of a shot to win this game considering they were turning the ball over to Sam Darnold under center, despite the fact he hadn't played a snap at all this season prior to this game. But the Panthers ended up grinding out a victory, so let's look back at the action and hand out some grades for Carolina in this shocking upset victory.

Passing offense

As previously mentioned, Darnold took over under center with P.J. Walker out and Baker Mayfield struggling. It wasn't the greatest outing ever, but Darnold did enough to keep the Panthers offense moving against a tough Broncos defense, which cannot be overlooked. Darnold's final numbers are relatively unspectacular (11/19, 164 YDS, 1 TD) but the Panthers will take that type of production any day of the week at this point.

D.J. Moore had a monster outing, hauling in four passes for 103 yards and a touchdown. No one else had more than two catches or 21 yards receiving, but it didn't really matter, because the Broncos offense wasn't doing anything on the other side of the ball. It wasn't the greatest outing, but Darnold took a step in the right direction leading the passing attack in this one.

Grade: B-

Rushing offense

Carolina's ground game continues to impress in the aftermath of the Christian McCaffrey trade. The assumption was that they would completely falter without McCaffrey, but that has been quite the opposite. D'Onta Foreman reprised his job as the lead runner and had a strong day of work (24 CAR, 113 YDS) while Chuba Hubbard joined in as well and picked up 65 yards on 17 carries.

Darnold also got in on the fun on the ground, picking up a rushing touchdown on a goal-line sneak for the Panthers second score of the day. Overall, the Panthers ground game powered the offense to their successful day, and while their 4 yards per carry isn't the greatest, it more than did the job against a strong Denver defense.

Grade: A-

Passing defense

The Broncos offense has been a mess all season long, but the Panthers did a good job making sure they wouldn't be figuring things out against them. Russell Wilson turned in another mediocre outing in the air (19/35, 142 YDS, 1 TD) and while many of Denver's wounds are self-inflicted, that cannot be taken away from Carolina's defense.

Courtland Sutton had a strong outing (6 REC, 75 YDS) but no one else did much alongside him. The Panthers also sacked Wilson three times, with one leading to a fumble recovery Carolina, ensuring that the Broncos wouldn't stay close in this game. The Broncos aren't necessarily good, but the Panthers pass defense did their job in this game.

Grade: B+

Rushing defense

Denver's rushing attack hasn't panned out as expected this season, with Latavius Murray now becoming their top option out of necessity. Murray actually had a strong day on the ground (13 CAR, 92 YDS) but was largely phased out of the game because the Broncos were playing catch up for much of the afternoon.

Overall, the Panthers allowed the Broncos to pick up 6.4 yards per carry, which is pretty bad, but they escaped unscathed because of the game script. This is definitely an area that needs to be cleaned up even though it didn't come back to bite them in this one, but it will earn this unit the lowest grade of the team as a result.

Grade: C

Special teams

Special teams played a huge role in this game for the Panthers. Eddy Pineiro had a perfect day kicking field goals (3/3 FGM, 2/2 XPM), Johnny Hecker saw four of his five punts land within the 20 yard line, and the Panthers kickoff team forced a Jalen Virgil fumble that resulted in three free points. Overall, this was a great outing from Carolina's special teams unit.

Grade: A

Coaching

Steve Wilks has done a really good job turning things around for the Panthers since taking over in the interim for Matt Rhule, and he put together a really strong gameplan to beat Denver. Starting Darnold was a bit of a risky move, but it paid off in a big way, and Carolina played things perfectly by getting the lead early and running the ball all over the Broncos. Wilks' coaching stock is continuing to trend upwards for his work with a desolate Panthers squad.

Grade: A-

Overall Panthers Grade: B+

It wasn't the prettiest win, but a win is a win. The Panthers did what they had to do to come out on top, and it looks like they are finding their identity on both sides of the ball. They are somehow still in playoff contention due to the Tampa Bay Buccaneers leading the NFC South with a 5-6 record, and who knows, maybe this win will look a lot more important in the coming weeks.