CLEVELAND — The Browns temporarily stopped another season from slipping away.
Baker Mayfield threw a 7-yard touchdown pass to Rashard Higgins with 1:44 left as Cleveland snapped a four-game losing streak — and took some pressure off first-year coach Freddie Kitchens — with a 19-16 win on Sunday over the Buffalo Bills.
"We needed to have that," Mayfield said.
With Kitchens under fire and their playoff hopes fading fast, the Browns (3-6) rallied for a win that kept their season from completely collapsing.
Not easy. Not pretty. Welcomed.
"This is a good start for us," said star receiver Odell Beckham Jr., who had five catches for 57 yards. "We got a tough win against a very good team."
Cleveland survived more problems in the red zone but sealed the much-needed victory when Buffalo kicker Stephen Hauschka's 53-yard field-goal attempt was short with 22 seconds left. Earlier, Hauschka missed a 34-yarder.
Quarterback Josh Allen had two touchdown runs for the Bills (6-3), who were off to their best start since 1993.
Mayfield finally delivered a clutch drive after Allen's 1-yard sneak put the Bills ahead 16-12.
On second-and-goal, he threaded his TD pass to an open Higgins, who had been suspiciously missing from Cleveland's game plan this season after being one of Mayfield's favorite targets last season. It was Higgins' only catch.
"I had a dream I scored and it happened," said Higgins. "Not like that — the game-winner. In my dream, I woke pretty quickly. I don't know how it ended."
Mayfield had his second straight solid game, completing 26 of 38 passes for 238 yards and two TDs. He didn't throw an interception for the second week in a row.
However, Cleveland struggled again to complete drives as the Bills stopped them on 12 plays inside the 3-yard line, holding Cleveland to three points.
"We had the big goal-line stand, but at the end of the day when the game is in your hands and you figure the defense is the bell cow of your team, we had to come up with a play to stop them," Bills linebacker Lorenzo Alexander said.
Browns running back Kareem Hunt made his debut for Cleveland and picked up 74 combined yards. The 24-year-old was eligible after completing an eight-game NFL suspension for two violent acts, including shoving and kicking a woman while he played for Kansas City.
"There are not enough words to tell how I felt being back out there," Hunt said. "I was thankful, sad. A couple times, I thought I was going to shed a tear. It's really good to be back home with the Browns. Any time I get an opportunity to make a play, I'm going to do it."
Nick Chubb rushed for 116 yards on 20 carries for the Browns, and Jarvis Landry had nine catches for 97 yards and made a crucial catch on Cleveland's game-winning drive.
The Bills' defense tied it 9-9 early in the third as linebacker Tremaine Edmunds sacked Mayfield in the end zone for a safety. The Browns were in an empty backfield and didn't account for blocking Edmunds, who came in untouched off the left side and quickly wrapped up Mayfield.
Buffalo's defense stopped the Browns on eight straight plays at the 1 — the equivalent of two goal-line stands — in the first quarter. The Bills stuffed Chubb on five carries, and Buffalo overcame a pair of pass interference calls in the end zone while keeping the Browns out of the end zone and off the scoreboard.
Allen's 10-yard quarterback draw — his fifth rushing TD this season — gave the Bills a 7-6 lead in the second quarter.
The Browns again got deep in Buffalo territory but were denied on three plays from the 3-yard-line. Kitchens decide to go for it on fourth down, but then changed his mind when right tackle Chris Hubbard was called for a false start.
The penalty pushed Cleveland back and the Browns settled for Austin Seibert's 27-yard field goal to go up 9-7.
Mayfield delivered a back-shoulder strike to Landry for his first TD, completing an effortless, efficient game-opening 75-yard drive for the Browns, who finally had all their offensive pieces with Hunt back.
Landry, though, was called for taunting cornerback Levi Wallace after the score and Austin Seibert missed a 48-yard PAT.
The Browns sat No. 3 wide receiver Antonio Callaway, who had played in all four games since returning from a four-game drug suspension to start the season. Callaway had a big drop in his first game back and hasn't been as consistent as the Browns had hoped.
Callaway's absence cleared the way for Higgins, who made his one catch count.
Kitchens wouldn't elaborate on Callaway's benching.
"It's between Antonio and I," he said.
• Bills: At Miami on Sunday.
• Browns: Host the Pittsburgh Steelers on Thursday.