CLEVELAND (AP/WJW) — The Cleveland Browns pulled off the NFL’s biggest stunner this season.

Rookie Jake Moody missed a 41-yard field goal with six seconds left as San Francisco fell 19-17 to the Browns, who ended the 49ers’ regular-season winning streak at 15 on Sunday and handed quarterback Brock Purdy his first loss as an NFL starter.

Dustin Hopkins kicked four field goals for the Browns (3-2) — the last with 1:40 left, capping a drive helped by a disputed unnecessary roughness call against San Francisco (5-1).

Cleveland pulled off the upset without quarterback Deshaun Watson, who missed his second straight game with a bruised right shoulder.

Browns head coach Kevin Stefanski was nothing but complimentary of San Francisco’s coaching staff and players, but wouldn’t admit to reporters the game’s outcome was a surprise.

“The truth is, we’re a good football team,” Stefanski said. “We’re not perfect, we know that, but we fought like crazy today and I’m just proud of so many guys.”

The 49ers came in looking nearly unbeatable after destroying Dallas 42-10 at home last week. But Cleveland’s defense was up to the task, and the 49ers were short-handed without playmakers Christian McCaffrey and Deebo Samuel, who both went out with injuries.

P.J. Walker came off Cleveland’s practice squad and outplayed Purdy, who threw his first interception this season and finished with just 125 yards.

When asked about being major underdogs going into the game, Walker made clear the Browns were not dwelling on that.

“They tie their shoes like us, man,” Walker told reporters following the game. “At the end of the day, they’re good, but we are all here for a reason. And at the end of the day, that’s what it’s about. I mean, they’re a great team. They’re a great football team. And for us, it’s just go out there and battle. We ain’t going to bow down to nobody and that’s it.”

The 23-year-old Purdy had won his first 10 starts and nearly pulled out a stirring comeback. He drove the 49ers into field-goal range in the final seconds before Moody pushed his attempt to the right.

When the ball sailed into the net, Cleveland’s sideline erupted in celebration and Browns fans danced in the aisles.

Purdy was just 12 of 27 for 125 yards.

The 49ers were heavy favorites at the start of the week, and their odds only grew when the Browns ruled out Watson on Friday.

They turned to Walker, who was only signed in August, and the 28-year-old showed poise on Cleveland’s final drive — and got away with a questionable throw into the end zone — to set up Hopkins for the winner.

Purdy was out of sync most of the afternoon against Cleveland’s top-rated defense, and things got even tougher for the second-year QB when Samuel went out with a shoulder injury and McCaffrey couldn’t push through an oblique issue.

Still, Purdy got an interference call on San Francisco’s final possession and made a couple nice throws to Jauan Jennings before the 49ers brought out Moody. He came in 9 of 9 on field-goal tries before missing a 54-yarder in the first half.

Browns defensive giant Myles Garrett said the goal this week was “find a way to win.” And that’s what the team did.

“When the chips are down and odds are against you, you know you have to make the most of what you got,” Garrett said. “We played the best we could with the cards were dealt and made the most out of it.”


On the road for the first time in four weeks, the 49ers began mixing it up with the Browns about 30 minutes before the opening kick.

Tempers flared during warmups with a brief skirmish on the 49ers sideline. There was a lot of trash talk and San Francisco left tackle Trent Williams shoved Moore from the side and knocked his helmet off.

Dozens of players were involved in the pregame skirmish, which began with Browns safety Juan Thornhill exchanging words with 49ers wide receiver Brandon Aiyuk.

After order was restored by the officials, several of the Browns stared down the 49ers as they left the field.

There were no penalties or ejections, but fines seem likely.


Browns All-Pro left guard Joel Bitonio had his streak of consecutive regular-season starts end at 102 games. He had also played 6,481 straight snaps.

Bitonio underwent an arthroscopic procedure on his knee during the bye week. Although he was close to returning, he opted to rest another week. He’s expected to play next week at Indianapolis.


49ers: Samuel spent an extended period in the medical tent before going to the locker room. He spent the second half on the sideline in street clothes. McCaffrey tried twice to come back in before being ruled out.

Browns: LB Anthony Walker sustained a concussion and didn’t play in the second half.


Browns: At Indianapolis on Oct. 22.