DETROIT — Josh Allen threw a go-ahead, 5-yard touchdown pass to Stefon Diggs late in the first half and Buffalo beat the Cleveland Browns 31-23 on Sunday after the NFL moved the Bills' home game to Detroit due to several feet of snow blanketing western New York.
The Bills (7-3) avoided blowing a third straight halftime lead by scoring on all five of their possessions in the second half and doing a better job protecting the ball.
Cleveland (3-7) rallied within eight points, setting up an onside kick in the final seconds that Bills receiver Gabe Davis failed to grab and running back Taiwan Jones knocked out of bounds.
Plenty of supporters from both fan bases attended, chanting “Let’s Go Buffalo!” and barking like dogs.
Buffalo lost its raucous home-field advantage, but the team did its best to bring some of the sights and sound familiar at Highmark Stadium, such as a blaring train horn and calls for Bills Mafia to get loud at key moments.
Buffalo, which will return to Detroit to play the Lions on Thanksgiving, started sluggish after a week disrupted by a winter storm.
Allen found a rhythm on an 11-play, 78-yard drive that took just 1 minute, 40 seconds and ended with Allen's first pass to Diggs.
The Bills scored a second-half touchdown for the first time in four games on Devin Singletary's 5-yard run. They also stopped Jacoby Brissett’s sneak on fourth-and-1 from the Buffalo 27 and blocked a field goal in the third quarter while building a 22-10 lead.
The Browns missed many opportunities to keep their playoff hopes from fading completely with quarterback Deshaun Watson nearing the end of his 11-game NFL suspension.
Brissett had passes dropped by tight ends Harrison Bryant and Pharaoh Brown on consecutive throws that cost Cleveland a touchdown and forced it to settle for a 10-3 lead early in the second quarter.
Brissett finished 28 of 41 for 324 yards — two shy of his career high — and a season-high three touchdowns. He threw a 25-yard touchdown pass to Amari Cooper on the opening drive, a 7-yard touchdown scoring pass to Cooper with 4:11 left that pulled the Browns within 12 points and a 2-yard touchdown pass to Donovan Peoples Jones in the final minute.
The Bills got a needed break when Brissett fumbled a snap midway through the second quarter at midfield. At that point, Buffalo was without a first down, getting outgained 181 yards to 12 and trailing 10-3.
Allen was 18 of 27 for 197 yards with a touchdown and no turnovers. He threw six of his NFL-high 10 interceptions over the previous three games and fumbled a snap in the end zone during last week's collapse against Minnesota.
Bills running backs Singletary and James Cook each ran for 86 yards, taking pressure off Allen to make plays through the air.
INJURIES
Browns: Starting C Ethan Pocic (knee) went out early in game and was replaced by Hjalte Froholdt.
Bills: DE A.J. Epenesa (ankle) was hurt during the game.
UP NEXT
Browns: Host Tampa Bay on Sunday.
Bills: Return to Ford Field to play the Lions on Thanksgiving.