ORCHARD PARK, N.Y. — Josh Allen threw three touchdown passes and Devin Singletary ran for a season-high 86 yards.
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 sprained his foot 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.
Gabriel Davis scored twice, including a 20-yard catch on a post route for a 24-8 lead in the third quarter. 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 (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 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.
Quarterback Cam Newton has lost 12 consecutive starts for Carolina.