SANTA CLARA, Calif. -- The San Francisco 49ers didn't seem to want to win Sunday's game against the Pittsburgh Steelers. They did everything they could to give it away -- and when they were done with that, the Niners seemed to try again.
But if you want evidence that these 49ers aren't the 49ers of recent vintage, this contest offered some overwhelming proof. Despite turning the ball over four times in the first half and doing it again in the red zone at a critical second-half moment, San Francisco found a way to steal a 24-20 win that almost certainly would have gone the other way during the previous two seasons.
It seemed only fitting that much-maligned wide receiver Dante Pettis hauled in the 5-yard score that provided the winning points after a rough training camp and start to the season. And with the game on the line, the 49ers' revamped pass rush -- much as it had all day -- was up to the task of closing it out.
With the win, the 49ers are 3-0 for the first time since 1998. It still feels too early to christen these Niners as legitimate playoff contenders, but it's worth noting that teams that start 3-0 have made the playoffs 73.8% of the time since 1990.
What's more, the 49ers have now won games on the strength of their defense, behind a dynamic offense and in the ugliest fashion possible. Good teams find ways to win in all sorts of ways.
Time will tell just how good these 49ers are, but there's no doubt they're much better than they've been the first two years under coach Kyle Shanahan.
Describe the game in two words: So ugly. This game had seven turnovers, and the Niners were responsible for five, but they still found a way to win -- which counts just the same in the final standings.
QB Breakdown: The final numbers look worse than they should because he had a pair of interceptions, but this was probably the most encouraging performance yet in quarterback Jimmy Garoppolo's return. The Steelers threw a variety of pressures at the Niners and rookie left tackle Justin Skule, as Garoppolo took eight hits. But Garoppolo mostly hung in the pocket and delivered, finishing 23-of-32 for 277 yards and a touchdown for a passer rating of 82.4.
And the interceptions, which gave him four on the season, weren't really his fault. One went through the hands of running back Matt Breida and the other through the hands of Pettis. Those picks can't be taken away, but overall, this was a solid outing from Garoppolo, who repeatedly led scoring drives when the Niners needed them most.
Troubling trend: Skule made his first NFL start in place of injured stalwart Joe Staley, and though it went pretty well in the first half, things took a turn for the worse in the final 30 minutes. Skule was flagged twice for holding and another time for an illegal blindside block. The blindside block was debatable, but it was still a mark against the rookie.
The good news for Skule is he will have the bye week to study and get better. The bad news for the Niners is Staley is still expected to miss at least another four games before his broken fibula heals.