Click here if you’re unable to view the photo gallery on your mobile device.

BALTIMORE — Here is how the 49ers (10-2) graded in their 20-17 loss to the host Baltimore Ravens (10-2) on Sunday:

PASS OFFENSE: B

An efficient outing amid the rain came to a spectacularly dismal end, when Jimmy Garoppolo’s fourth-and-1 pass out of the shotgun formation got batted down and gave the ball to the Ravens for their winning drive. Garoppolo opened with a spectacular, fourth-down touchdown pass to Deebo Samuel on the opening possession, but a third-down sack and fumble on the ensuing possession led to the Ravens’ first touchdown. The Ravens limited George Kittle to 17 yards on two catches while other receivers stepped up, especially Kendrick Bourne (3 catches, 3 targets, 42 yards and a 30-yard, third-down conversion). Garoppolo got sacked just twice, both on third down on the opening two series, so Daniel Brunskill’s first start at left tackle went perhaps better than expected.

RUN OFFENSE: A

Raheem Mostert reeled off a career-high 146 yards and supplanted Tevin Coleman as the go-to rusher, while Matt Breida (ankle) missed a third straight game. Mostert’s 40-yard touchdown run came after back-to-back Ravens touchdowns, and he acknowledged afterward he was fueled in part by the memory of Baltimore releasing him as a 2015 rookie. The line, tight end and receivers blocked well as the 49ers averaged 6 yards per carry (29 attempts, 174 yards). A 30th attempt should have happened instead of a fourth-and-1 pass play, although Shanahan disagreed.

PASS DEFENSE: B

Lamar Jackson passed for only 105 yards (4 more than he ran for) and had no completions longer than a 20-yard touchdown pass to tight end Mark Andrews over linebacker Fred Warner. In fact, 75 yards went to tight ends, so the cornerbacks weren’t as stressed this game like they will be against Michael Thomas and the Saints next. Jimmie Ward made an acrobatic pass defense deep down field. This was the third straight game without an interception.

RUN DEFENSE: C+

Jackson was as elusive as advertised, and his fake against K’Waun Williams typified how dynamic of a rusher he is (16 carries, 101 yards). Marcell Harris, four snaps after replacing an injured Jaquiski Tartt, made a fantastic play to strip Jackson of the ball on his way toward a potential touchdown. Several 49ers defenders said afterward that they adjusted well to stopping the run, but there were just too many times Jackson kept the ball and broke loose around the edge. Holding Mark Ingram to 59 yards (15 carries) was commendable. Fred Warner had double-digit tackles (11) for the fourth straight game, all in the wake of Kwon Alexander’s season-ending injury.


SEASON PASS DIGITAL OFFER

If you have not already, we strongly encourage you to sign up for a digital subscription, which gives you access to all content on the Mercury News and East Bay Times websites. With your support, we can continue bringing these stories — and much more — to your screens. Here’s where to sign up for the season pass: Mercury News, East Bay Times.


SPECIAL TEAMS: C

Robbie Gould’s return didn’t come in ideal conditions, and Shanahan said he wasn’t tempted to try a 53-yard field goal on their final possession. Gould had a 51-yard try partially blocked to end the first half, and he made a 32-yarder to tie the score in the third quarter. Mitch Wishnowsky’s 36-yard net average took a hit because of an 18-yard, fourth-quarter punt return. Mark Nzeocha had two tackles (and one bad miss of Jackson on a rushing touchdown).

COACHING: C-

Yes, Shanahan deserves criticism, for play calls (fourth-and-1 pass!), for clock management before halftime, for perhaps not challenging a punt downed at the 1 as a touchback. But consider this, too: The 49ers took the AFC leaders to the final play, on the road, in the rain, on a 10 a.m. PT start. Losing next Sunday in New Orleans will be more detrimental to their NFC playoff position than this measuring stick against the NFL’s highest scoring team, which was held to 15 points below their average.