For much of the week, coach Kyle Shanahan was uncertain whether Purdy would play against the Denver Broncos, but he ultimately opted to give Purdy the start with hopes of getting him a full series.
Purdy, playing against an opponent for the first time since tearing the ulnar collateral ligament in his right elbow on Jan. 29 in the NFC Championship Game, got exactly that. Joined by all projected Niners starters except left tackle Trent Williams, running back Christian McCaffrey and tight end George Kittle, Purdy played 10 snaps and led the Niners on a 69-yard drive capped with a field goal to open the game, a 21-20 win.
"I thought he did really good," Shanahan said. "I mean, all the plays that he had, he made, and I don't think he had a bad one."
Shanahan dialed up a play-action rollout and easy pass to wideout Deebo Samuel for a gain of 25 yards on the first play, and Purdy finished 4-of-5 for 65 yards on the drive. Along the way, Purdy also took his first hits since that loss to the Philadelphia Eagles, including a sack for a loss of 8, and scrambled for a gain of 8 on the next play.
According to Shanahan, the sack was caused by a busted protection and there wasn't much Purdy could do to avoid it. Purdy had previously said he wasn't concerned about taking a hit again, but he was pleased to get it out of the way and move on against the Broncos.
"Honestly, yeah, it was good to be able to drive and then be able to take some hits and get right up and run a play again right after that," Purdy said. "It's part of the game and honestly it helps me sort of settle into the game. I thought it was pretty good to be able to go through that."
Shanahan and general manager John Lynch have said since the league meetings in March that Purdy would be the team's starter so long as he was healthy enough to handle the job. Purdy was then cleared to practice two of every three days to open training camp in late July and last week had that restriction removed, practicing for three straight days for the first time.
With most of the major hurdles out of the way, Purdy is on track to start the Sept. 10 opener against the Pittsburgh Steelers. For now, he and the team are still monitoring how many throws he makes on a given day so as to not "throw your arm out every single day."
Aside from that Purdy has no other tests to pass other than to get to the opener healthy. Before then, he will play in the preseason finale against the Los Angeles Chargers on Friday with some other 49ers starters, Shanahan said.
"I feel really good, honestly," Purdy said. "I want to be able to practice consistently and come Week 1, be ready to rip it. We're getting there."
Meanwhile, in the battle for the backup job, Sam Darnold replaced Purdy for San Francisco's second drive and played through most of the third quarter. He finished 11-of-14 for 109 yards with an interception and a touchdown for a passer rating of 93.2.
Trey Lance stepped in for Darnold at the end of the third quarter, working with the third-string offense against Denver's third-team defense. After a slow start, Lance finished with a flourish. Lance went 8-of-10 for 142 yards and a score on the final two drives, as he helped the Niners to a comeback win on a last-second 32-yard field goal by rookie kicker Jake Moody.
Lance finished 12-of-18 for 173 yards with a touchdown and an interception for a passer rating of 93.0.
In training camp and the first two preseason games, Lance and Darnold have alternated with the second-team offense as they jockey for position on the depth chart. It's unclear how reps will be divvied up in the final preseason game, but Shanahan was pleased with what he saw from all three quarterbacks on Saturday.
"I thought all three of them did a good job," Shanahan said. "A good stepping stone for next week."