You would think an opportunity to get back to .500 before a bye week against an ailing Dallas Cowboys team would set the table for a clear, convincing 49ers victory. That was not the case.
Here are three takeaways from the 30-24 win that started slow, ramped up, then nearly got away from them.
A second-half resurgence (and a scare)
It's impossible to understate how pathetic of a performance the 49ers put on in the first half. This Dallas team is bad. They are without Micah Parsons, Demarcus Lawrence and DaRon Bland. It should have been a wire-to-wire waxing.
But seemingly whenever there was a timeout or a stoppage in play, the 49ers would take an impressive drive and halt. Whether it was a hold, a missed block, or a missed throw from Brock Purdy, San Francisco consistently put itself in disadvantageous situations.
Then the second half started and they snapped awake.
Despite a run stuff to open the drive, Brock Purdy scrambled for nine, then snuck it to get a first down. From there, the floodgates opened.
Purdy hit George Kittle on a quick slant for 43 yards — aided by route-running effort from Chris Conley to take Trevon Diggs out of the play — and Isaac Guerendo punched it in for a touchdown a play later.
The 49ers' defense stepped up, too. Deommodore Lenoir made a fading interception against CeeDee Lamb.
They tapped Guerendo and Deebo Samuel to set up a 3rd-and-2 at the 2-yard line, then got a rub route from Conley to get Kittle wide open for a touchdown. Suddenly, it was 20-10 with a pathetic Cowboys offense on the other side.
A 3-and-out followed, and a Purdy scramble plus a 27-yard dart to Kittle set them up deep in Cowboys territory. They punched it in a few plays later with a Purdy sneak from the 2-yard line to turn it into a rout... or so we thought.
The 49ers defense fell apart with a 17-point lead. They allowed two, two uncovered touchdowns to CeeDee Lamb, the only dangerous player on the Cowboys offense. The first was a busted coverage, and the second the result of Renardo Green being clobbered by Ji'Ayir Brown in man coverage.
All of a sudden, it was 30-24 with well over 3-and-a-half minutes remaining. The 49ers, who should have won by at minimum, double digits, were in threat of losing.
But they managed to force four-straight incompletions from Dak Prescott, who would have thrown an interception on his first one to Deommodore Lenoir if not for a Fred Warner swat. He almost had an interception on his second one to De'Vondre Campbell. He almost had a 40-plus-yarder to Kavontae Turpin on his third throw, and the referees probably could have thrown a ticky-tacky defensive pass interference flag on the fourth, but declined to.
San Francisco took over, and Guerendo once again slid safely before the end zone to ice the game. This time, he meant to.
George Kittle makes history on "holiday" he created
It was a historic night for George Kittle, who secured his 500th career catch and passed Dwight Clark for third all time in receiving yards for the 49ers.
It was apropos of him to excel on "National Tight Ends Day," the fake NFL holiday he almost singlehandedly created. Sunday featured more touchdowns for tight ends than any other day this season, and it was a reminder that Kittle is perhaps the 49ers' most valuable player on offense. (Sure, it's probably Trent Williams and/or Brock Purdy ahead of him, but there's a discussion to be had).
He does everything for the 49ers and is called upon week in and week out. His team-leading six catches for 128 yards and a touchdown don't show all he does, but they were pretty impressive.
Isaac Guerendo steps up with Mason out
After a sterling start to the season, Jordan Mason has looked way off since he suffered an AC joint sprain. He seemed to re-aggravate that injury Sunday night, and it opened the door for Guerendo.
He did not waste his opportunity.
What became abundantly clear is that Guerendo tests the edge on stretch runs in a way no other player on the 49ers currently can. Mason and Deebo Samuel don't currently have the juice to get there. Guerendo does and changes the angles that defenders have to take to reach him.
He also made a spectacular catch in the flat, and simply looks like a threat as a receiver a way Mason does not. That was apparent at Louisville, where Guerendo caught 22 passes his final year of school.
He finished with 14 carries for 85 yards and a touchdown, along with three receptions for 17 yards.
He hurt himself in the fourth quarter but put his helmet back on and appeared like he was available to return. If/when Christian McCaffrey returns, Guerendo showed he still needs to be part of the running back rotation. Well... maybe not in pass protection. He allowed a crucial sack on a 2nd-and-3, which set up a punt and a chance for the Cowboys to steal the game. The fact that a run wasn't called there is a head-scratcher.
Despite all that, Guerendo's icing of the game capped another breakout day for him.