EAST RUTHERFORD, N.J. (AP) — Josh Allen and the Buffalo Bills had more turnovers than points while scuffling through much of the first three quarters against the New York Jets.
None of those early struggles mattered in the end.
Allen threw a 38-yard touchdown pass to John Brown with 3 minutes left, and the Bills overcame four early turnovers to rally from a 16-point second-half deficit and stun Le'Veon Bell and the Jets 17-16 in the season opener Sunday.
"We continued to fight," Brown said. "We didn't point any fingers. We just kept fighting until the time was up."
After struggling to get much going on offense, the Bills finally were able to move the ball after Jets middle linebacker C.J. Mosley, who had two takeaways including an interception for a touchdown, left with a groin injury late in the third quarter.
"When he went out, it was kind of a game changer," Allen said, "as far as they didn't have somebody that vocal in the middle of the field that was able to make all their calls and all their checks."
Buffalo also took advantage of kicking woes by the Jets as Kaare Vedvik, claimed last week off waivers from Minnesota, missed an extra point and a 45-yard attempt.
"We've just got to get better," said Adam Gase, coaching his first game for the Jets. "We have to make extra points. We have to make field goals. We can't be losing out on points in those areas of the field."
Bell caught a touchdown pass and had a 2-point conversion in his Jets debut, and Jamison Crowder had 14 catches for 99 yards in his first game with his new team — but Gase's offense otherwise sputtered behind a line that gave Sam Darnold little time to throw.
"We were inept on offense," Gase said flatly.
Allen finished 24 of 37 for 254 yards and a touchdown, and had one of his two interceptions returned 17 yards for a touchdown by Mosley. Brown caught seven passes for 123 yards. The Bills' defense limited the Jets to 223 total yards.
"I don't think many teams can turn the ball over four times in the first half and only be down 6-0," Allen said. "It speaks volumes about who they are, the character they have and how they're coached."
Darnold was 28 of 41 for 175 yards and the TD to Bell, who ran for 60 yards on 17 carries. The running back, who sat out all last season in a contract dispute with Pittsburgh, also caught six passes for 32 yards.
Leading 8-0 in the third quarter, it appeared the Jets scored on a 5-yard throw from Darnold to Ryan Griffin, but the play was overturned as Quincy Enunwa was called for offensive pass interference.
Two plays later, New York got into the end zone again — and it counted — as Bell reached down for a low throw and stepped into the end zone for a 9-yard touchdown.
Gase then opted for the 2-point conversion and Bell leaped in the back of the end zone and came down with Darnold's desperate heave to put New York up 16-0 with 7:01 left in the third quarter.
Buffalo got onto the scoreboard on its next possession on Stephen Hauschka's 43-yard field goal. The drive was kept alive when Henry Anderson was called for roughing the passer on third-and-10 from the Jets 49. A diving Marcus Maye also dropped an interception on the play right before Hauschka's field goal.
Mosley injured his groin during the drive while breaking up a pass into the end zone. Rookie Blake Cashman replaced him, but the loss of New York's middle linebacker made a difference on Buffalo's next drive.
Rookie Devin Singletary gouged the defense on runs of 23, 12 and 15 yards, and Allen capped the impressive drive by pump faking, taking off to his right and stepping inside the right-front pylon to make it 16-10 with 10:21 remaining.
"I felt like our energy died, man," Jets safety Jamal Adams said. "We weren't playing team ball. Any time you do that, a team's going to take advantage of it."
Mosley, making his Jets debut after five years with Baltimore, snatched a tipped pass from Allen and took it 17 yards into the end zone for a touchdown less than five minutes into the game.
But Vedvik clanked the extra point off the left upright.
Vedvik is the third kicker with the team since training camp began, with Chandler Catanzaro retiring after struggling in the preseason opener and Taylor Bertolet missing three field goals in the preseason finale.
Brian Poole and Jordan Jenkins combined to stuff Frank Gore before he could get out of the end zone for a safety, giving the Jets an 8-0 lead 3:08 into the second half.
Bell became the fastest player in NFL history to get 8,000 yards from scrimmage for his career. He reached the milestone with a 5-yard run, his first carry for New York in the first quarter of his 63rd career game. The 27-year-old Bell entered the game with 7,996 yards from scrimmage.
The previous fastest was Pro Football Hall of Famer Eric Dickerson, who accomplished the feat in 64 games.
"It's definitely overshadowed by losing," Bell said. "Obviously, it's a nice accolade, I guess, but right now it don't really matter. I'm just trying to get a 'W.'"
Bills: S Taron Johnson left with a hamstring injury.
Jets: Rookie DL Quinnen Williams, the No. 3 overall pick, left in the fourth quarter with an ankle injury and was seen leaving the stadium in a walking boot.
Bills: Play at MetLife Stadium for the second straight week when they face the New York Giants next Sunday.
Jets: At home against Baker Mayfield and the Cleveland Browns next Monday night.