Josh Allen threw three touchdown passes, Devin Singletary ran for a season-high 86 yards with his quarterback mostly kept in the pocket by a sprained left foot and the Buffalo Bills beat the offensively challenged Carolina Panthers 31-14 Sunday.

Allen finished 19 of 34 for 210 yards while Singletary kept Buffalo moving on the ground and opened the scoring on a 16-yard run.

The Bills limited Allen’s mobility a week after the fourth-year starter was hurt in a 33-27 overtime loss at Tampa Bay. Allen was sacked a season-high four times for 17 yards. He scrambled once for 26 yards in the third quarter.

CLICK HERE FOR MORE SPORTS COVERAGE ON foxnews.1eye.us

Gabriel Davis scored twice, including a 20-yard catch on a post route for a 24-8 lead with six minutes left in the third quarter — Davis had several steps on defender Rashaan Melvin on that one. Davis also scored on a 14-yard catch in the fourth quarter, and Stefon Diggs had an 11-yard TD grab in a game the Bills never trailed.

Buffalo Bills wide receiver Stefon Diggs (14) celebrates after scoring a touchdown in the first half of an NFL football game against the Carolina Panthers, Sunday, Dec. 19, 2021, in Orchard Park, N.Y.

Buffalo Bills wide receiver Stefon Diggs (14) celebrates after scoring a touchdown in the first half of an NFL football game against the Carolina Panthers, Sunday, Dec. 19, 2021, in Orchard Park, N.Y. (AP Photo/Adrian Kraus)

Buffalo (8-6) was at risk of its first three-game skid in three years. The Bills have won four of nine games and kept a hold of at least a wild-card spot. They can still repeat as AFC East champions, too, with a key showdown against first-place New England (9-5) next Sunday.

The Panthers (5-9) dropped their fourth straight and lost for the ninth time in 11 games. In a what-else-can-go-wrong season, Carolina was dealt a blow a little over an hour before kickoff when kicker Zane Gonzalez had to be helped off the field after hurting his quadriceps.

The injury left Carolina minus a real kicker. The Panthers passed up a field-goal attempt and failed to convert fourth-and-9 from Buffalo’s 24 to end their second possession. Carolina converted one of two 2-point attempts.

After Cam Newton scored on a 4-yard run, DJ Moore made a one-handed catch in the right corner of the end zone to cut Buffalo’s lead to 14-8 with 1:48 left in the first half. Newton was stopped on a running attempt after hitting Ameer Abdullah for a 23-yard touchdown catch with 11:01 remaining.

The Panthers converted just 1 of 5 fourth-down tries, with Efe Obada ending Carolina’s last real chance for a comeback by sacking Newton for an 8-yard loss on fourth-and-10 from his own 46 with under six minutes left.

Allen’s one miscue was an interception in which he sailed a pass intended for Diggs that was picked off by Jeremy Chinn. Allen’s ninth interception in seven games set up Newton’s touchdown.

Newton finished 13 of 39 for 156 yards and an interception, with 15 carries for a team-leading 71 yards. He extended his NFL record by scoring a TD rushing and TD passing for the 44th time of his career. Newton also extended his streak of scoring a TD rushing to five consecutive games, matching the NFL record for a quarterback set by Arizona’s Kyler Murray last year.

0 FOR 12

Newton has lost 12 consecutive starts for Carolina, a skid that began before he spent last season with New England. Newton re-signed with the Panthers last month and hasn't led Carolina to victory since a 42-28 win against Tampa Bay on Nov. 4, 2018.

KICKING SCRAMBLE

Not long after Gonzalez was helped off the field after getting hurt, Carolina had what was essentially a kick-off to see if anyone was able to replace him. Receiver Brandon Zylstra, practice squad running back Reggie Bonnafon and linebacker Frankie Luvu each practiced field-goal attempts before the game.

Punter Lachlan Edwards handled kickoff duties.

LINEUPS

Panthers: RG John Miller returned after missing two games with an ankle injury.

Bills: Were down two offensive line starters after RG Jon Feliciano was placed on the Reserve/COVID-19 list hours before kickoff. LT Dion Dawkins landed on the list Friday and was not cleared to play.

UP NEXT

Panthers: Close home schedule hosting the Tampa Bay Buccaneers on Sunday.

Bills: Close road schedule at the Patriots on Sunday.