The Bears have given us some ugly offensive performances this season, but it's probably safe to say that none of them were uglier than what happened on Sunday in Philadelphia. 

During Chicago's 31-3 loss to the Eagles, the Bears' offense basically set football back 50 years. As matter of fact, the Bears' offense was so bad against Philly that it was literally going backwards at times. Chicago's three running backs -- Jordan Howard, Tarik Cohen and Benny Cunningham -- actually combined for negative yardage in the blowout loss. 

Of the Bears' three running backs, Jordan Howard was the star -- and we use that term loosely -- of the game as he carried the ball seven times for six yards. When you throw in the numbers from Cunningham and Cohen, the Bears three backs finished with a combined 10 carries for negative-6 yards. 

The only reason the Bears didn't finish with negative rushing yardage is because Mitchell Trubisky managed to rush for 12 yards on four scrambles. The Bears' team rushing total of six yards actually set football back further than 50 years. The six-yard rushing performance was the Bears' worst since 1952, when they totaled exactly one yard on the ground in a game against the Rams.

As bad as the Bears have been this season, running the ball has been one of the few things that they were able to do well. Going into Week 12, the Bears were ranked fifth in the NFL in rushing yards per game. That number is going to drop big time after Sunday's performance. 

Overall, the Bears only totaled 140 yards in the game, which was their worst showing in seven years. The Eagles definitely deserve some credit here for shutting Chicago down, but John Fox also deserves a large part of the blame because we're 12 weeks into the season and it's still not exactly clear what the Bears are trying to accomplish on offense. I mean, you could make the argument that the Eagles' team celebrations were more organized than the Bears offense on Sunday. 

The Eagles. defense was celebrating a lot in the first half, when they held the Bears to 33 yards and a total of zero first downs.

With an offense that looks lost and the Bears on a four-game losing streak, it wouldn't be surprising to see the Bears make a coaching change if Fox doesn't find a way to win two or three more games down the stretch this season. 

Let's get to the rest of the grades. 

Philadelphia 31-3 over Chicago

Bears: F

It's still up for debate, but the Bears might have actually played the worst first half in NFL history. Of Chicago's six possessions in the half, the Bears punted four times, missed a field goal and threw and interception. Also, they only totaled 33 yards and didn't record a single first down. That's about as ugly as it can possibly get for an NFL team in one half of play. 

Eagles: A-

The scary thing about the Eagles is that they won this game by four touchdowns despite the fact that they turned the ball over three times. The other scary thing about the Eagles is that coach Doug Pederson has decided to eschew the conservative ways of most NFL coaches and get crazy. The Eagles went for it on fourth down a total of four times in this game and converted three of them. Oh, there's actually another scary part, too: The Eagles only surrendered 140 yards in the game, which was the team's best defensive performance since 1996 when they only gave up 121 yards to the Giants

Buffalo 16-10 over Kansas City

Bills: B+

Tyrod Taylor wasn't great in this game, but one thing he didn't do was throw five interceptions. Taylor threw for 183 yards and one touchdown and then let the Bills' defense do the rest. The Bills completely bottled up Kareem Hunt, holding him to just 17 yards, which was the rookie running back's lowest total of the year. The Bills defense needed a game like this after getting lit up for 54, 57 and 34 points over the past three weeks. 

Chiefs: F

It seems that the wheels have now completely fallen off the wagon in Kansas City. The Chiefs only totaled 57 yards in the first half, and somehow, things only got worse after that. If there's a panic button in the Chiefs' locker room, someone needs to push it now. As bad as the Chiefs have been in recent weeks, this game might have been rock bottom: They lost to a reeling Bills team and for the first time all season, didn't produce at least 250 yards of total offense (236). 

Carolina 35-27 over New York Jets

Panthers: B

Cam Newton was off his game in New York (11 of 28 for 168 yards), but that didn't matter for the Panthers because they found plenty of other ways to score points that didn't involve their offense. Luke Kuechly might have made the biggest play of the game in the fourth quarter when he returned a fumble 34 yards for a touchdown that gave Carolina a 26-20 lead. Actually, the biggest play for Carolina might have come on the next series when Kaelin Clay returned a punt 60 yards for a touchdown that gave Carolina 32-20 lead. Actually, they were equally big plays because the Panthers needed both scores as they fought to hold off a feisty Jets team that was leading this game early in the fourth quarter. 

Jets: B

Robby Anderson almost did enough to carry the Jets to a win by himself. The second-year receiver caught six passes for 146 yards and two touchdowns, which was especially impressive because it came against a Carolina defense that was ranked fourth against the pass going into Sunday's game. The Jets arguably outplayed the Panthers, but they watched the win slip out of their hands during a 131-second span in the fourth quarter where the Panthers scored two non-offensive touchdowns (a punt return and a fumble return). If Jets fans were handing out grades, they'd probably give the officiating crew an 'F' for overturning a controversial Austin Seferian-Jenkins touchdown in the fourth quarter. 

Cincinnati 30-16 over Cleveland

Browns: C

If the Browns could have figured out how to finish off a drive, they might have been able to pick up their first win of the year.  The Browns drove inside of the Bengals' 10-yard two times in this game and didn't come away with a touchdown either time. Of course, the fact that the Browns struggled in the red zone was only about 40 percent of the reason they lost. The other 60 percent revolves around the fact that Cleveland couldn't stop a Bengals offense that went into Sunday's game ranked dead last in yards per game and 29th overall in points per game. At one point, the Bengals scored on five straight possessions, and you're never going to win if you let the NFL's worst offense score on five straight possessions. 

Bengals: B+

For the first time all year, the Bengals actually got some production from their ground game. Rookie Joe Mixon (114 yards) led a Bengals rushing attack that totaled a season-high 152 yards. The Bengals might want to make multiple copies of Sunday's game plan and just go ahead and use it for the rest of the season, because if we've learned one thing during Andy Dalton's career, it's that the Bengals are nearly unbeatable when he gets some help from the ground game. Since drafting Dalton in 2011, the Bengals are 20-1-2 when they rush for 150 or more yards in a game. 

New England 35-17 over Miami

Dolphins: C-

It's hard to say if Matt Moore is an improvement at quarterback for the Dolphins because he never really got a chance to prove himself this week due to the fact that he spent four quarters being chased around by the Patriots' defense. Moore was sacked seven times in this game and got zero protection from a Dolphins offensive line that looked helpless at times. The ugly part is that the Dolphins' letdown came against a Patriots defense that had been averaging just 1.7 sacks per game this season. 

Patriots: B+

Tom Brady took a beating against Miami, but not even that could slow down his 40-year-old body. Despite the fact that he took several hard hits, Brady still managed to surgically take apart the Dolphins' defense with a 227-yard performance that included four touchdown passes. Of course, we almost always expect Brady to be good, but one thing we don't expect though is for the Patriots' defense to go sack crazy. Going into Sunday, the Pats had just 17 sacks in 10 games this season and they added seven to that total thanks to big-time performances from Trey Flowers and Elandon Roberts, who had two sacks each. 

Atlanta 34-20 over Tampa Bay

Buccaneers: C

When your opponent torches you for more than 500 yards of total offense, you're almost never going to win, and that's what happened to the Bucs in this game. The Falcons rolled up 516 total yards, marking just the third time since 1990 that the Bucs have surrendered 500 or more yards in a non-overtime game. The ugliest part for the Bucs' defense is that it had an impossible time getting off the field as they let the Falcons convert 11 of 14 times on third down. With the Falcons firing on all cylinders, there was no way Tampa was going to overcome a slow start that saw them fall behind 27-6 in the second half.

Falcons: B+

It took nearly half the season, but it looks like the Falcons might finally be comfortable running Steve Sarkisian's offense. For the third week in a row the Falcons lit up the scoreboard, and this week's offensive explosion might have been their most impressive. Thanks to a ridiculous game from Julio Jones (253 yards, two touchdowns), the Falcons were able to rack up a season-high 516 yards in the win. Jones wasn't the only Falcons receiver to have a big day, though. Mohamed Sanu threw a 51-yard touchdown pass and also tacked on 64 yards receiving doing his regular job. As for Jones, he now has three career games with 250 or more yards, which is something no other player in the NFL has even done twice. 

Tennessee 20-16 over Indianapolis

Titans: B-

For the first time in franchise history, the Titans pulled off a win at Lucas Oil Stadium, and they did it by terrorizing Jacoby Brissett. Daquan Jones was the ringleader of the Anti-Brissett brigade as he racked up two of Tennessee's eight sacks in the game. The win over the Colts marked the first time since 1985 that the Titans, who were then the Oilers, recorded at least eight sacks in a game. The Titans needed every single sack because they didn't get much help from a Tennessee offense that turned the ball over two times. 

Colts: C

At this point, if you're a Colts fan who wants to maintain your sanity, you might just want to start turning off Indy's games after the third quarter. For the fifth time this season, the Colts blew a fourth-quarter lead, and this one might have been the most painful because it came to a division rival. Through 11 games this season, the Colts have been outscored 116-28 in the fourth quarter, including Sunday's game where the Titans outscored Indy 7-0. 

Seattle 24-13 over San Francisco

Seahawks: B+

At this point, the Seahawks should probably just change their name to the Seattle Russell Wilsons. Wilson carried the Seahawks' offense in this game with another impressive performance. Not only did the Seattle quarterback throw for 228 yards and two touchdowns, but he also rushed for 25 yards and another touchdown. The Seahawks also got an impressive performance from a defensive line that recorded three sacks. The constant pressure by the Seahawks' defensive line made things a lot easier for a battered Seattle secondary that's dealt with several big injuries over the past few weeks. 

49ers: C-

In what has been a disastrous season for the 49ers, this loss will likely only be remembered as the game where Jimmy Garoppolo made his 49ers debut. The first pass of Garoppolo's career was a fourth-and-6 conversion that might have garnered the second loudest cheer of the day in San Francisco. The loudest cheer of the day came one play later when Garoppolo threw a 10-yard TD pass on the final play of the game. Jimmy's final stat line: 2 of 2 for 19 yards and a touchdown. We might be giving the 49ers a C-, but that's an A+ stat line from Garoppolo. 

Oakland 21-14 over Denver

Broncos: C-

The Broncos' decision to start Paxton Lynch might have created more questions than answers. Before Lynch left with an injury in the third quarter, the Broncos were trailing 21-0. After Lynch went out, Trevor Siemian came in and threw two touchdown passes and almost led Denver to an improbable comeback. The Raiders went into the game with one of the worst pass defense in the NFL, so the Broncos had to be disappointed to see Lynch struggle (41 passing yards, one interception). 

Raiders: C

Four days after seeing their defensive coordinator get fired, the Raiders' defense responded by picking off their first pass of the season and pitching a shutout for three quarters. The most impressive part of this win for the Raiders might have been the fact that Derek Carr was able to throw for 253 yards and two touchdowns even though he lost one of his favorite targets early in the game. Michael Crabtree and Aqib Talib were both ejected in the game's first few minutes after getting into a fight on the field. 

Arizona 27-24 over Jacksonville

Jaguars: C

If we found out one thing on Sunday, it's that the Jaguars' defense can't carry the team when the offense does absolutely nothing. Earlier this season, the Jaguars won games when the running game wasn't clicking or when Blake Bortles struggled, but not when both happened, and both happened in Arizona. The Jaguars put up a season-low 219 yards, marking the sixth time in Blake Bortles' career that the offense put up less than 220 yards. Not surprisingly, the Jags are 0-6 in those games. 

Cardinals: A

If Blaine Gabbert had looked this good during his early years in Jacksonville, the Jaguars probably would have never let him go. Gabbert, who was selected by the Jaguars with the 10th overall pick in the 2011 NFL Draft, shredded his former team in one of the most shocking performances of 2017. Going into the game, Gabbert versus the Jaguars defense seemed like a mismatch, but that didn't turn out to be the case. Gabbert threw for 241 yards and two touchdowns against a defense that had only been surrendering 162 pass yards per game heading into Week 12. Phil Dawson proved that Tom Brady isn't the only successful player who's currently over the hill. The Cardinals' 42-year-old kicker nailed a 57-yard game-winning field goal with just one second left to play. 

L.A. Rams 26-20 over New Orleans

Saints: C+

Sean Payton's decision to kick a field goal from the Rams' 3-yard line with his team down two touchdowns will probably go down as one of the most perplexing coaching calls of Week 12. That one call didn't kill the Saints, though; this loss had more to do with the fact that New Orleans' defense had no answer for Jared Goff. The Saints' defense, which has been a bright spot this season, surrendered 415 yards to the Rams. The Saints are now 1-3 this season when they surrender 400 or more yards of offense and 7-0 when they don't. 

Rams: A

Jared Goff is going to be sad to see November end after the way he played over the past month. Goff threw for 354 yards against the Saints, marking the third time in four weeks that he's thrown for at least 310 yards in a game. The wild thing about that is that before November Goff had never thrown for 310 or more yards a single time in his career. 

Pittsburgh 31-28 over Green Bay

Packers: B+

One week after melting down in a 23-0 loss to the Ravens, Brett Hundley looked like a completely different quarterback going up against the Steelers. Playing in hostile territory didn't seem to phase Hundley at all as he played a nearly perfect game, throwing for 245 yards and three touchdowns. The biggest mistake the Packers made in this game didn't happen on the field; it came from coach Mike McCarthy, who decided to have Mason Crosby attempt a 57-yard field goal in one of the least kicker-friendly stadiums in the NFL. Not only did Crosby miss, but the Steelers ended up using the short field on the ensuing possession to score a touchdown that tied the game at 21. After calling a nearly perfect first half, McCarthy seemed to get worse as the game went on.

Steelers: B+

Ben Roethlisberger threw two interceptions and Le'Veon Bell lost a fourth-quarter fumble, but none of that mattered thanks to Antonio Brown, who made one of the most unbelievable catches of the 2017 season. 

Brown's 23-yard catch set up Chris Boswell's game-winning 53-yard field goal with no time left. Brown had his way with the Packers' secondary all night, racking up 169 yards and two touchdowns on 10 catches. As for Bell and Roethlisberger, they more than made up for their mistakes. Bell totaled 183 yards in the game and Roethlisberger threw for 351 yards and four touchdown passes. Basically, the Packers got swarmed by the Killer Bs.