The 49ers scored just six points, and they lost 10-6. The offense struggled to score, as backup quarterbacks Scott Tolzien and Colt McCoy struggled, and some wide receivers faltered. However, the positives were plentiful.
What were those positives, and what were the negatives?
The secondary is a concern for the 49ers, but it didn't look like one against Denver.
Cornerback Perrish Cox led the way for the group, which did a spectacular job Thursday. The outside linebackers also did a nice job, piling up a stellar 3.5 sacks. Backup linebacker Dan Skuta came through with two of those sacks, and outside linebacker Parys Haralson tallied one.
Oh, and starting outside linebacker Aldon Smith almost brought down Manning in his only series.
The outside linebackers harassed Broncos backup right tackle Vinston Painter, and as a result, backup quarterback Brock Osweiler was under pressure all night.
The secondary benefited from the pressure, and it turned in a gem of its own. Cox picked up five tackles (and one tackle for loss), and he shined on special teams as well. He returned one kickoff for 33 yards, and he returned a punt 15 yards.
Cornerback Tramaine Brock held star receiver Demaryius Thomas to just a seven-yard catch, and he also shut down deep threat Tavarres King. As for the safeties, Eric Reid did a great job tackling as he recorded six tackles. Special teams ace and starting safety candidate C.J. Spillman also impressed by electrifying Candlestick Park with some boisterous hits.
San Francisco did a fabulous job on defense, and the secondary and linebackers led the way. The secondary isn't laden with stars, and there isn't much depth at middle linebacker, but neither issue plagued the 49ers Thursday.
And luckily for them, that could be an indicator of much-needed future success at both positions.
Anthony Dixon is currently sitting far behind starting running back Frank Gore in a backfield teeming with stellar ball-carriers. However, he might have earned himself more reps and potentially a better spot on the depth chart with a phenomenal performance Thursday.
Dixon racked up 27 yards on seven carries, and he additionally had two more big runs (totaling 48 yards) negated by penalties. He shredded Denver's defense by gobbling up chunks of yardage, and he made his presence felt on special teams as well.
He picked up two tackles, further proving his capabilities on special teams. Even if he can't pass Gore, LaMichael James or Kendall Hunter on the depth chart, he will see some action at running back and time on special teams.
Because of Dixon's talent and his performance Thursday, that is now assured.
If Dixon were on another team, he could be vying for a starting job. His elusiveness has been on display throughout his NFL career, scoring six touchdowns in just 120 carries. If he continues to dominate, he could become a go-to short-yardage back.
Why? Because if he continues to portray his exceptional strength, he could make his presence felt in the regular season as well.
The 49ers have searched for Michael Crabtree's replacement since he went down with a demoralizing Achilles injury, and they have some players with the potential to replace him.
A.J. Jenkins is one of those players, and he was thought of as the favorite to replace Crabtree for a substantial amount of time. However, against the Broncos, he didn't look like someone capable of taking on that pivotal role.
In fact, he might have thrown his best shot at earning a starting job out the window. Jenkins caught just one pass on three targets, and one of those targets resulted in an interception. He didn't lay out for some passes, and he could have prevented Denver safety Mike Adams' interception.
His numbers were repulsive, and he didn't positively impact the 49ers. Instead, he impacted the game negatively. Right after his first catch, he fumbled. Jenkins performed miserably, and coach Jim Harbaugh acknowledged that.
According to Mark Purdy of The San Jose Mercury, Harbaugh wasn't pleased with Jenkins' performance.
Jenkins is talented enough to start, but his abysmal performance is costing him. Marlon Moore, who has just 12 catches in three seasons, started over him on Thursday, and he could even start in the regular season.
Even though Jenkins is the most talented candidate, he will be riding the bench again if he can't prove himself.
The 49ers' offensive totals were underwhelming, but Kaepernick and the first-team offense sure didn't underwhelm anyone.
Kaepernick went 4-for-4 with 38 passing yards, guiding the 49ers downfield efficiently on a field-goal drive. He hit new target Anquan Boldin twice, and he also hooked up with star tight end Vernon Davis.
Denver's defense had trouble containing Kaepernick, who carved it up by throwing short, accurate passes.
Boldin and Davis consistently separated themselves from defensive backs, and Kaepernick found them for decent chunks of yardage.
Boldin and Kaepernick displayed some solid chemistry, which was great for 49ers fans to see. Kaepernick also made a nice throw on the run to hit Moore, who is thriving in San Francisco's open wide receiver competition.
Kaepernick had plenty of targets to throw to Thursday, and he also will in Week 1 against Green Bay. With Davis and rookie tight end Vance McDonald (who led the team with 62 receiving yards against the Broncos) supporting Boldin and a wealth of depth at wide receiver, the 49ers might not have any offensive problems.
They sure didn't have any on the first drive of the game. And as long as the injury bug doesn't bite (again), the offense's prowess will be on full display in the regular season.