Entering the team’s third preseason game versus the Minnesota Vikings, the main focus was on the 49ers’ starters and how they would perform after the last two weeks of poor play and execution. Even though the team ended up losing after a last minute score and 2 point conversion by the Vikings, there were plenty of positives to take.

The Good

Brian Hoyer: Hoyer threw his first touchdown of the preseason, coming on a 46-yard pass to the lightning fast receiver Marquise Goodwin. The first series was followed up by another effective drive that ended in a nice throw and play to Carlos Hyde where he took it in the end zone from 24 yards out. Hoyer finished completing 12/17 of his throws for 176 passing yards and 2 tds in only one half of action. There has been chatter that the team should consider play CJ Beathard with the 1’s and let him get a chance to compete for the starting gig, but that discussion should be over after this game.

Play calling: It is very refreshing to see effective and creative play calling. Kyle Shanahan is one of best offensive minds in the league and he showed flashes of it versus the Vikings. It has been a while since we have seen well executed screen passes and shown big play ability. Shanahan called a diverse assortment of plays which were executed well by the starting offense. He even worked Carlos Hyde into the passing attack (3 receptions for 45 yards and 1 TD). It will be interesting to see how this unit will continue to develop with each game as they learn more and more of Kyle Shanahan’s system.

Raheem Mostert: After being relatively quiet in the first two games, Mostert exploded for 130 total yards including 2 TDs. Going into this game he really didn’t have much of a chance to make the team but after this performance and his added value on special teams, he may have a shot after all. If he doesn’t make the 49ers roster he definitely was impressive and should land elsewhere if he’s released.

Pierre Garcon: The veteran hauled in six catches for 64 yards, showing off his strong hands in the process. Garcon is not the flashiest but he is a proven and reliable player who is by far the team’s best overall receiver. He seems to be creating a solid connection with Brian Hoyer and is earning his trust, which should lead to more production by Garcon as the season goes along.

Defensive Front Seven/ Pass Rush: The consistent pressure that was generated by the defense was one of the biggest positives from this game, especially as it looks as if the team will need the help with the struggles at cornerback (where the players seem petrified to be beaten deep and are resulting giving up easy 10/12 yard gains). Elvis Dumervil was very effective at getting to the quarterback and creating pressure (PFF grade 87.4) – he got a sack and four hurries. Arik Armstead also displayed some forceful moves to get to the quarterback for a sack as well. They also held the Vikings two top running backs, Dalvin Cook and Latavius Murray, to only 23 yards on seven carries.

Reuben Foster: Foster was all over the field for the Niners on Sunday night, making tremendous plays sideline to sideline. His great athleticism and closing speed helps him track down the ball carrier quickly and make punishing tackles. He finished the game with eight tackles including one for a loss. It is easy to see while watching Foster that he has all of the attributes to develop into a Pro Bowl linebacker and if his shoulder holds up, I have no doubt that he will show that he was well deserving of being selected in the first round.

The Bad

C.J. Beathard: Even though the stat line of Beathard looks respectable (7/13 159 passing yards and 1 td) it is quite misleading, mainly because of Mostert’s big reception which was mostly yards after the catch. He looked uncomfortable in the pocket, threw very inaccurate passes and forced throws, resulting in an interception. There was talk within the 49ers’ fan base and media that the team should only carry only two quarterbacks but after Beathard’s performance on Sunday, that chatter has died down somewhat.

Run Blocking: The interior run blocking performed poorly again for the most part with defensive linemen getting into the backfield very quickly, resulting in several running plays getting stopped for short gains. Rushing yards were hard to come by and were well earned. The 49ers ran for 91 yards on 26 attempts which is an average of only 3.5 yards per carry. Play action is a major component in Shanahan’s offense so the running game will be very important on the overall success of the offense this year. If defenses can shut it down without having to commit to stopping the run the 49ers’ play action game will be severely weakened. Joshua Garnett should be returning in the upcoming weeks and hopefully that’ll boost the run blocking as a whole as it’s one of his biggest strengths.

Penalties: The biggest negative throughout the first two preseason games had to be the number of costly and avoidable penalties. The team did improve in this category this game in the first half; the starters only committed two. That’s certainly a positive but the team still tallied nine penalties for 75 yards in total. The coaching staff will need to continue to work on this concern as it could cost the team wins in the regular season if the team doesn’t improve, just as it did here.

The Ugly

Backup Secondary: The ugliest part of the game was the backup secondary, especially the cornerbacks. Keith Reaser was called for pass interference with two seconds left in regulation. This led to a Minnesota touchdown, followed by a successful two-point conversion to give the Vikings a last minute victory. Even though Ahkello Witherspoon was a recent 3rd round pick by the team he continues to look lost. His draft status should help him make the team but how long is his roster position safe? The team should be looking to upgrade the position either through a trade or with the incoming cuts throughout the league, if only for the short term. This team could surprise everyone, but if the corners struggle, that suddenly becomes far less likely.

Special teams: The special teams unit gave up a 108-yard kickoff return for a touchdown in the second half. In addition to that they missed a good amount of open field tackles on other kickoffs and will need to improve on this going into the season.