The 49ers and Ravens played a remarkable game Sunday at M&T Bank Stadium in Baltimore. The back-and-forth contest underwent four lead changes and three ties with the home team emerging the 20-17 victors.
San Francisco took their second loss of the season, but the acquitted themselves well in an early, rainy road game. Here are six takeaways from the loss:
49ers are NFC’s best team

The 49ers lost their second game of the season, but both of their losses came on last-second field goals against very good teams. San Francisco went into Baltimore and went blow for blow with arguably the best team in the AFC. The 49ers may have lost Sunday, but they showed the NFL they’re a legitimate Super Bowl contender, and should be the favorite to come out of the NFC. Don’t be surprised if Sunday was a preview of Super Bowl LIV.
Kyle Shanahan’s strange decision-making costs 49ers in 1st half

San Francisco had a head-scratching possession near the end of the first half. The 49ers took over with 1:58 left in the first half with a chance to score and go into the break at least tied. Jimmy Garoppolo completed a throw to Deebo Samuel for eight yards with 1:13 left, but Shanahan elected to not take a timeout. In fact, San Francisco didn’t take their first timeout until there were 20 seconds left in the half. At that point they were only at Baltimore’s 37-yard line. The desire to not give the ball back to the Ravens was clear, but the clock management wound up hurting more than it helped. One or two additional timeouts before that 20-second mark could’ve allowed San Francisco to do more than try a 51-yard field goal. Robbie Gould’s attempt fell short
Another interesting decision costs 49ers late…

A second strange call from Shanahan came late in the game when the 49ers set up for a fourth-and-1 at Baltimore’s 35 with 6:28 left. Instead of lining up and trying to plow ahead for a yard, the 49ers’ head coach called a pass from a shotgun formation. Garoppolo’s throw was batted down at the line. They never got the ball back. Garoppolo said after the game that they liked the matchup they were getting with George Kittle in that spot. Given how much success they’d had running, it would’ve made a lot of sense to put it on the run game in that spot to try and keep the drive alive.
Raheem Mostert’s big day

The 49ers were down one of their weapons in the run game after Matt Breida was ruled out for the third consecutive game with an ankle injury. Mostert made up for his absence in a big way. He ran it 19 times for 146 yards and a touchdown. His 40-yard scamper in the second quarter tied the game at 14, and he played a key role in the series that led to the 49ers’ game-tying field goal in the third quarter. San Francisco needed a revival of their running game to stay in Sunday’s game, and Mostert provided much-needed production.
Jimmy Garoppolo was mostly good

While Garoppolo’s fourth-down pass on the offense’s final possession fell incomplete, the quarterback was terrific for most of Sunday against a very good defense. There were a couple mistakes, but Garoppolo didn’t throw an interception and completed 15 of 21 passes for 165 yards and a touchdown in wet, rainy conditions. It wasn’t perfect from the 49ers’ signal caller, but he acquitted himself well against perhaps the best team in the AFC.
How about that defense

The 49ers defense was terrific against a Ravens offense that managed to post 30-plus points five consecutive weeks. They allowed just 20 points and 283 yards of offense. That’s Baltimore’s second-lowest yardage total and their lowest point total of the season. It wasn’t a perfect outing, but it was as good as can be reasonably expected against the most dynamic offense in the NFL.