By Sam McPherson

The San Francisco 49ers are running out of opportunities to win games in this 2017 NFL regular season after they lost on Sunday at home to the Arizona Cardinals, 20-10. This was a game that the 49ers certainly had to feel like they had a chance to win coming in. Instead, the Cardinals forced two turnovers and used 32-year-old running back Adrian Peterson extensively to hand San Francisco its ninth straight loss this season—and 10th straight overall dating back to 2016.

READ MORE: 3 Teens Accused Of Killing Man, Stealing His Dog & Car In San Francisco On New Year's Eve

The home team fell behind early at Levi’s Stadium after an early fumble lead to an easy Arizona touchdown, and the 49ers were playing from behind all afternoon. San Francisco’s offense put together a nice TD drive in the third quarter to close the gap to 14-10, but the Cardinals put the 49ers away late with two field goals from former S.F. placekicker Phil Dawson. With an 0-9 record now, the 49ers don’t have a lot of games left in 2017 against teams they might be able to beat.

Offense: D

The Arizona defense came in to this game giving up an average of 27 points, but despite gaining 329 yards on offense, the 49ers turned the ball over twice and scored just ten points against the Cardinals. Rookie quarterback C.J. Beathard once again threw a lot of passes for minimal gains, leaving the offense unable to generate many scoring chances. A whopping 51 passing attempts gained just 294 yards, while Beathard took five sacks on the day. The lack of a consistent passing game meant little running room for running back Carlos Hyde, who gained just 41 yards on a mere 12 carries.

Beathard and Hyde did connect, however, on nine pass plays, but no other 49ers receiver had more than three catches on Sunday. Eight other players caught passes from Beathard, and he did connect on a nice 55-yard bomb to wide receiver Marquise Goodwin. However, Beathard did not throw a touchdown pass, while tossing one interception. For the season now, over three starts and some playing time off the bench, the rookie QB has just two TD passes and four INTs. Chances are the 49ers will be starting newly acquired QB Jimmy Garoppolo sooner rather than later.

Defense: C

The Cardinals offense—led by Peterson, 34-year-old journeyman QB Drew Stanton, and 34-year-old future Hall of Fame WR Larry FItzgerald—clearly took advantage of its bye week to get ready for this game. The relatively ancient trio (by NFL standards) led Arizona to 368 total yards and helped keep the 49ers defense on the field for more than 36 minutes in this game. Stanton completed only 15 of his 30 attempts for 201 yards and two TDs with an INT, but Peterson ran for 159 yards on 37 carries as the S.F. defense couldn’t really stop him all afternoon.

READ MORE: San Francisco Police Preparing to Handle Niner Fan Festivities on Sunday

Fitzgerald led his team with five catches for 70 yards. Overall, the Cardinals converted seven of 16 third-down attempts to keep the ball away from the 49ers, while putting together 11- and 12-play scoring drives in the fourth quarter to keep the game under their control. Despite forcing a Peterson fumble, the S.F. defense couldn’t sack the wily Stanton once all game, and that ended up being a big factor in the game.

Special Teams: B

There was nothing “special” about the special teams for the 49ers in this loss. Placekicker Robbie Gould hit his two kicks, and punter Bradley Pinion delivered eight solid punts. San Francisco didn’t get any big returns from its kicking game, either. However, it was interesting to see both Dawson (2013-2016) and former 49ers punter Andy Lee (2004-2014) on the other sideline. Both were standout S.F. special-teams players in the past.

Coaching: F

Perhaps Head Coach Kyle Shanahan was just passing time in this game with Beathard at QB until he can get Garapollo ready, but for the second straight week, there were too many passes and not enough runs. If Hyde is the best player on the offense—even if the O-line is not at 100 percent—the play calling has to provide him with more than a mere 12 carries. The offensive ineptitude has hurt the defense all the season, in terms of not being able to stay on the field long enough to score consistently, while leaving the defense tired and worn down in the fourth quarter time after time. Can’t Shanahan come up with a better plan than this?

Up Next: New York Giants

MORE NEWS: IRS Website Will Soon Require Facial Recognition To Log Into Your Account

In 2011, the 49ers hosted the Giants in the NFC Championship Game, and now six seasons later, winless San Francisco will host one-win New York in what has to be one of the worst matchups of the 2017 regular season. After Week 10 against the 1-7 Giants, there are nothing but “better” teams on the schedule (combined current record: 27-21) for the 49ers over the final six games of the season. San Francisco—and its coaching staff—have to be prepared to take advantage of a bad New York team next Sunday at Levi’s Stadium to get a win, or else the 49ers could be looking at an 0-16 season. That’s the truth.