The look on John Harbaugh’s face said enough.

He was stunned.

He appeared truly concerned.

And that was before halftime.

The Baltimore Banner thanks its sponsors. Become one.

When Justin Tucker tugged a field goal attempt wide left on the final play of the first half — a rare miss — the Ravens coach stood in shock, as if he couldn’t believe that mistake, of all possibilities, was added to the several that had already happened.

Perhaps he suspected even then that there were many yet to come.

He was right.

On a cold and snow-flurry-filled Saturday night in Cleveland, errors doomed the Ravens in myriad ways all game long, and despite a strong performance on the ground again, the mistakes proved too much to overcome in a costly 13-3 loss to the Browns that muddies what had been a straightforward path to the playoffs for the Ravens (9-5).

Among the mistakes: a delay-of-game penalty coming out of a timeout, something not often seen. (Afterward, quarterback Tyler Huntley said there were headset issues on the play, and he didn’t hear the formation from offensive coordinator Greg Roman). Maybe you can explain that one away, but not the others, such as a third-down fumble on a sloppy handoff exchange between Huntley and wideout Devin Duvernay; two other fumbles by wide receiver Demarcus Robinson; and a 50-yard field goal attempt that got blocked, making for the first time Tucker has missed two attempts in a game since 2018.

The Baltimore Banner thanks its sponsors. Become one.

Probably the most deflating and worrying miscues were not one, but two stalled offensive drives at nearly the identical spot: inside the Browns’ 15-yard line.

On the first drive of the game, Harbaugh elected to go for it on fourth-and-short at the Browns 7-yard line and eschew three possible early points. Fullback Patrick Ricard didn’t get the yard (if that) he needed, which left the Ravens with nothing to show from an otherwise effective 10-play opening drive.

Later, on the Ravens’ first drive of the second half, Cleveland cornerback Denzel Ward grabbed a critical interception by beating veteran wideout DeSean Jackson to a Huntley throw on an in route near the 10-yard line.

After each turnover, the Browns went on long scoring drives, the first for three points. The second led to the game’s lone touchdown on a 12-play, 91-yard march during which the Browns converted their own fourth-and-short. DeShaun Watson, making his first start in Cleveland, completed a 3-yard touchdown pass to Donovan Peoples-Jones.

“You can’t turn the ball over,” Harbaugh said. “You have to run routes the right way. ... You can’t fumble the ball. ... That’s winning football. Our guys know that.”

The Baltimore Banner thanks its sponsors. Become one.

All the mistakes spoiled another strong performance on the ground for the Ravens’ offense. J.K. Dobbins had his second-straight 100-yard game, with 125 yards on 13 carries, and Gus Edwards added 55 yards on seven carries. The Ravens’ power run game was on point, with pulling guards and tackles making good work of Browns would-be tacklers and opening big holes.

But the passing game was nowhere near as prolific and didn’t allow much room for error. Huntley, making his second consecutive start in place of the injured Lamar Jackson, threw for only 138 yards and completed 17 of 30 passes. Tight end Mark Andrews led with 31 receiving yards. Robinson and Duvernay had 29 apiece.

“We have to just have a better passing game, basically,” Harbaugh said. “It’s not a good enough passing game right now across the board. That will be priority one.”

Not that there is ever a good time for an ugly defeat, but this one came at a particularly inopportune time as the Ravens fell a half game behind the 9-4 Cincinnati Bengals (who play Tampa Bay on Sunday) for the AFC North lead.

Until now, the Ravens were on a collision course for a regular-season finale in Cincinnati that could decide who wins the division and hosts at least one playoff game. They no longer have control of their fate, though.

The Baltimore Banner thanks its sponsors. Become one.

Now, if the Ravens — who hold a head-to-head tiebreaker over Cincinnati, having beaten them in October — want to win their division, they have to either hope the Bengals lose one of their final four games of the season, or beat them again.

“We’re in a real tight chase for our division,” Harbaugh said. “It’s us and the Bengals trying to win the division. We want to win this division, so we’re going to put all of our focus and all of our energy into trying to find a way to do that.”

And suddenly, the Ravens have to look behind them, too. They are now only a half game in front of the Miami Dolphins (8-5) for the sixth spot in the seven-team AFC playoffs. Three other teams are in striking distance with 7-6 records.

To close the regular season schedule, the Ravens face the Atlanta Falcons (5-8) at home on Christmas Eve and host the Pittsburgh Steelers (5-8) on New Year’s Day before playing at Cincinnati on Jan. 8. Of the Atlanta game at 1 p.m. Saturday at M&T Bank Stadium, Harbaugh said: “It’s a game we have to win.”

Said Dobbins: “Everything we want is still in front of us. We are going to take it game by game. We can’t look ahead. ... We are going to get ready for Atlanta, and we are going to do everything we can to win that game. Then we are going to do everything we can to win the next game, win the next play and win the next second. I have faith in our guys because that is how we are in the locker room.”

The Baltimore Banner thanks its sponsors. Become one.

If you’re looking for a silver lining from this Ravens defeat on a wintry night in Ohio, aside from the presence of an effective run attack, the loss was somewhat uncharacteristic.

There was not a blown fourth-quarter lead, like in the Ravens’ previous losses in 2022. Linebacker Roquan Smith had 11 tackles, and rookie defensive back Kyle Hamilton was all over the field, blitzing effectively and marking Browns tight end David Njoku in coverage.

But there was again a team that couldn’t find the end zone, which has been a theme in some other close wins lately, as well as their last loss, to the Jacksonville Jaguars on Nov. 27.

Meanwhile, the Browns did just enough. “They beat us today,” Dobbins said. “We were not the better team today.”

Watson, playing in only his third game after serving an 11-game suspension stemming from more than 20 accusations of sexual misconduct with massage therapists, had just enough of a passing rhythm, completing 18 of 28 throws for 161 yards. Running back Nick Chubb barely missed becoming the first player to gain 100 rush yards against the Ravens’ defense this year as Cleveland iced the game in the fourth quarter. Chubb finished with 99.

Cleveland kicker Cade York missed two field goals himself in the fourth quarter, but the Ravens couldn’t capitalize on the extra possessions. Huntley was sacked on consecutive plays on the Ravens’ final drive. “There were so many plays in this game that could have changed the whole outcome,” he said.

No apology needed

Veteran defensive back Marlon Humphrey said Tucker attempted to apologize to the team in the locker room after the game for the missed and blocked kicks.

“I think everybody in the locker room was like ‘Don’t ever say that again,’ ” Humphrey said. “He has won us too many games. He is the best for a reason. There is never a time when Justin Tucker loses us a game. He is great. That is the last person I think anyone is worried about at all.”

Tucker set the Ravens’ all-time field goals record on the one field goal he did make, a 53-yarder in the second quarter that tied the game at 3. With the play clock nearing zero, Tucker appeared to quicken his pre-kick routine a tad before booting his 355th field goal as a Raven, breaking the team record previously held by Matt Stover.

Extra points

Corey McLaughlin is a veteran writer and editor who has covered sports in Baltimore for a decade, including for Baltimore magazine, USA Lacrosse Magazine and several other publications.

More From The Banner