B.J. Daniels 49ers MinicampJim Harbaugh didn’t feel the need to see a lot of his starters tonight. It makes sense: they’ve been a dominant squad for two years now, and with so much talent on the roster it’s best to err on the side of caution. These games mean nothing.

Andy Reid felt differently. He left his starters in for the entirety of the first half, which made for a strange 30 minutes of football.

The benefit? We got a closer look at how players like Colt McCoy would stand up to first-string talent (spoiler alert: not very well).

We also got to see a little bite back from Vic Fangio and the second-team defense for Reid’s decision. Alex Smith drove the Chiefs down the field late in the second half, but once they got close to scoring the defense dialed up a jail break blitz on their former quarterback. Smith was only pressured by the 49ers’ first-string defenders twice (once by Michael Wilhoite and once by Aldon Smith), but once the backups stepped in he was dropped for a loss twice and faced pressure several more.

It was a quiet night from the 49ers’ first-team offense, whose lone highlight came on a Madden-style 52-yard run from Frank Gore (looks like he’s ready for the season). Colin Kaepernick went 1-for-2 for -3 yards; his only completion was a failed screen pass to LaMichael James. Kaepernick did air it out on 3rd down for Chad Hall, but the throw was too long for him.

A quarterback merry-go-round followed, with alternating series for Colt McCoy and Scott Tolzien. Neither could get it going against the Chiefs’ first-team defense, a fact both expected and slightly alarming. Jewell Hampton was the featured running back for Week 2 of preseason, and he had his struggles against Kansas City’s tough run defense. Anthony Dixon (who’s usually the 49ers’ preseason MVP) spent most of his reps at fullback.

Fans couldn’t wait to see B.J. Daniels, and in the fourth quarter they finally got him. The first series found him pinned inside of his own 10-yard line and resulted in a punt, but the second featured the most productive offensive drive of the preseason: Daniels marched the 49ers 91 yards down the field and capped it off with a 14-yard touchdown pass to Chuck Jacobs, sealing the 15-13 comeback victory.

Offensive observations

— We’ll start with the fight for QB3, which just got interesting. As underwhelming as McCoy has been, he has the backup spot sewn up. Tolzien, on the other hand, isn’t even competing. He has been extremely underwhelming through two games (3-for-8, 30 yards against the Chiefs), and Daniels looked great throwing zip passes to Jacobs, Lavelle Hawkins and Austin Collie. He can be inaccurate, especially under pressure, but he displayed some poise with two completions on third down to move the chains.

— If you’ve read this far you’re probably looking for A.J. Jenkins. It was another rough game for the first-round wide receiver, who spent the majority of his snaps being pushed around by 6-3, 218 lb Sean Smith. The big press corner made it difficult for Jenkins to get out of his routes, and the two targets he got against the Chiefs’ first-teamers resulted in 1.) a break up after Jenkins slipped and 2.) a pick after McCoy threw behind him.

— If you’re into keeping track of this kind of stuff, that’s three turnovers on Jenkins targets.

— The good news: He finally caught a pass!

— The bad news: It got overturned on a holding call. /sad trombone

— McCoy has shown more with his legs than his arm so far … literally. He gathered 37 yards on four carries while only gaining 35 through the air. I called for more offensive evaluation with the starting offensive line, but McCoy, Tolzien and the receivers were unimpressive.

— Chad Hall was the only wideout to raise eyebrows in the first half, making two impressive catches for a total of 39 yards. He compensates for his small stature by going up and getting the ball, even if he’s facing contact.

Defensive observations

— It was another good game for Perrish Cox, who collected two sacks and flashed in coverage yet again. He’s playing like a man who wants to take Chris Culliver’s spot.

— Cox will face some stiff competition from Nnamdi Asomugha, who was impressive as well. Asomugha saw a good deal of action against the Chiefs’ starting offense, primarily covering Jon Baldwin and doing it well. He got in on a corner blitz and popped Smith in the back, pressuring the quarterback into an incompletion.

— It’s easy to see what Trent Baalke liked about Corey Lemonier. He has incredible jump on the snap count and he showed it for the second-straight game, frequently getting past the opposing tackle and disrupting the play in the backfield.

— The 49ers finally have the depth they needed at outside linebacker. Parys Haralson looks like he hasn’t lost a step since his season-ending injury last year. In fact, he may be better.

— It was a quiet night for Eric Reid, which isn’t necessarily a bad thing. He never got beaten deep, and came through the line completely unblocked on a third down jailbreak blitz to force a field goal.

Special teams observations

— Not a good night for special teams coach Brad Seely. The 49ers allowed Quintin Demps to take a 103-yard kick return back for a touchdown on the Chiefs’ second possession. The only man who had a shot at Demps was Cam Johnson, who got moved out of his lane rather easily.

— They gave up a big punt return to Devan Wylie later, and the return followed a penalty that forced a re-kick. In all, the coverage units committed five penalties. I wouldn’t want to be a player in their next special teams meeting.

— There were some bright sides: they got two suitable returns from James and another nice one from Cox. Phil Dawson was 3-for-3 on field goals, two of which were from 55 yards out. And Haralson blocked a punt.

THE MOST IMPORTANT FACT: The 49ers escaped their second preseason contest without serious injury, which means that even if they had lost 55-0, they won.