The Bears led the Buffalo Bills 10-6 on frigid Soldier Field, but were eventually undone by injuries, questionable play calls and a lack of talent in key positions.
Quarterback Justin Fields was held back by the Bills’ defense and Buffalo left chilly Chicago with a 35-13 win.
The Bears’ offense lacked punch, and the defense was hurt on the ground by the Bills’ inconsistent rushing offense all season.
This is the Christmas report card the Bears don’t want in their fridge.
passing offense
The Bears’ air raid was marginally successful against the Bills on Saturday.
With starting guards Cody Whitehair and Teben Jenkins out through injury, the Bears’ offensive line struggled against Bills defensive tackle Ed Oliver and the Bills’ front four.
The field and passing game was crisp on the opening drive, as the second-year quarterback hit a wide-open Dante Pettis for a 6-yard touchdown after a 20-yard gain by Byron Pringle. .
Those are the only fireworks of the Bears’ passing attack. With Chase Claypool, Darnell Mooney and Equianimus St. Brown out, the Bears lacked the playmakers needed to stress the Bills vertically.
A 44-yard catch by Bellas Jones Jr. was the only highlight after the Bears’ opening drive.
Grade: D+
rush offense
Ground games, which are usually led by Fields, were relatively quiet on Saturday.
The Bills made a concerted effort to pressure off the edge to force Fields to give up the ball on a lead play. Buffalo did a great job keeping Fields in his pocket so he couldn’t go out and use his elite athleticism to create game-changing plays.
David Montgomery led the Bears with 62 yards (3.9 yards per carry) on 16 attempts. Khalil Herbert looked rusty as he rushed back for just seven yards on six carries.
With 2/5 on the offensive line, the Bears struggled to gain consistent traction in run games.
Grade: D.
pass defense
The Bears started three rookie cornerbacks on Saturday. On paper, it looked like the matchup Bills quarterback Josh Allen and wide receiver Stephon Diggs should take advantage of.
The Bears’ rookie trio had other plans.
Kyler Gordon, Jaron Jones and Josh Blackwell have all been acquitted for their vaunted Bills Passing Attack.
Allen completed only 15 of 26 passes for 172 yards and two touchdowns. He also threw two interceptions. Gordon held up well as the Bears’ first corner and Jaron Johnson finished the season. A second-round pick helped keep Diggs to just two catches for 26 yards.
No Bills receiver has gone past 50 yards.
A good day in pass defense was overshadowed by a terrifying effort to stop a run.
Grade: B.
run defense
Nothing was irreparable in the Bears’ run defense against the Bills on Saturday.
The front four had little impact and the linebackers were nowhere to be seen. The secondary took a really brutal angle when trying to track down James Cook and Devin Singletary.
RELATED: Bills’ plan to stop Fields shows huge offseason challenges facing Bears
result?
The Bills rushed for 254 yards (8.2 yards on one attempt), including touchdown runs of 33 and 27 yards.
The Bears have struggled to stop runs all season, but Saturday may have been their worst effort yet.
Grade: F
special team
Richard Hightower’s unit played some pretty good football in the rough weather on Saturday.
Jones gained 113 kickoff return yards, Cairo Santos went 2-for-2 on field goals with a PAT, and Trenton Gill averaged 49.3 yards per punt, going 1 of 4 within 20 yards.
A solid Christmas Eve for special teams.
Grade: B.
Click here to follow the Under Center podcast.
!function(f,b,e,v,n,t,s)
if(f.fbq)return;n=f.fbq=function()n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments);
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
function getCookie(cname) let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for (let i = 0; i < ca.length; i++) let c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1); if (c.indexOf(name) == 0) return c.substring(name.length, c.length); return ""; if (getCookie('usprivacy') === '1YYN') fbq('dataProcessingOptions', ['LDU'], 0, 0); fbq('init', '674090812743125'); fbq('track', 'PageView');