The 49ers originally owned the 12th pick in the 2021 NFL Draft. Just over a month before the draft, they packaged several picks together and moved up the No. 3 overall spot. That signaled to everyone that they would take a quarterback.
The question was, which one? Trevor Lawrence and Zach Wilson were expected to be off the board, so it would be a choice between Trey Lance, Justin Fields and Mac Jones for San Francisco.
The 49ers never tipped their hand. On draft day, they selected Lance and tapped the North Dakota State product as their quarterback of the future. That said, there were questions about whether Lance — who started just one full season at the FCS level — would be ready for the limelight right away.
That has created one of the more intriguing quarterback battles in the NFL between Lance and Jimmy Garoppolo. While Lance has more upside, Garoppolo helped navigate the 49ers to a Super Bowl the last time he was fully healthy in 2019.
49ers coach Kyle Shanahan hasn’t named a starter yet, but on Wednesday, he told reporters that his decision is close to being made.
“I’ve got a pretty good idea,” Shanahan said, per ESPN. “But as you guys can see with everything, I don’t know our schedule a couple days from now. So, I’ve always had a pretty good idea. But there are lots of days between now and then, at every position.”
Who is winning the 49ers’ quarterback battle? Here’s what Shanahan has said about Garoppolo and Lance during San Francisco’s ongoing QB battle.
IYER: Rankings NFL’s starting quarterbacks 1-32
What Kyle Shanahan has said about Jimmy Garoppolo
Shanahan’s first comments about Garoppolo after drafting Lance had to have had the quarterback worried. Shanahan wouldn’t guarantee that Garoppolo would be a 49er in his post-draft press conference. In fact, he wouldn’t guarantee that the world would survive through the weekend.
“I can’t guarantee that anybody in the world will be alive on Sunday, so I can’t guarantee who will be on our roster on Sunday,” Shanahan said, per Pro Football Talk.
Shanahan explained that he actually apologized to Garoppolo immediately after that comment; he was just messing with a member of the media who inquired about the potential for a trade.
Since then, Shanahan has been adamant that Garoppolo will be the team’s starter. At the outset of training camp, he made that clear.
”There’s no open competition right now in terms of getting equal reps with the same group,” Shanahan said in late July. “Jimmy is coming in as the [No.] 1 and Trey is coming in as the 2.”
Shanahan further elaborated on that point, saying that when Garoppolo is healthy, it would be tough for any rookie to beat him for the job.
“Jimmy’s a very good player,” Shanahan said. “And when Jimmy’s at the top of his game, I told him this back when we made the trade: ‘There’s no rookie that’s going to just come in here right away and take your job if you’re at the top of your game.’”
That said, the competition has opened up a bit in the preseason as Lance has flashed. That’s part of the reason that Shanahan has yet to officially announce a starter. He wants to make his quarterbacks earn the job.
MORE: When will Justin Fields start for the Bears?
What Kyle Shanahan has said about Trey Lance
The 49ers’ decision to take Lance wasn’t necessarily a surprise. However, the 49ers had been tied to Mac Jones frequently during the draft process, so not many mock drafts had Lance penciled in as the No. 3 pick.
Shanahan confirmed that the 49ers knew they wanted Lance during the whole process, and he explained why during an interview with NBC Sports’ Peter King.
His natural ability to play the quarterback position, just in terms of how he plays in the pocket, how he can go through the progressions, how, when no one’s open, that he gives it a chance, that he recognizes it. And how quick he reacts to turning it into an off-schedule play. He plays on tape like he’s a very poised, smart person who’s been playing the position for a while.
Then you look into the other attributes, and you’re like “Oh, I haven’t even gotten to the running skill set.” I haven’t gotten to the upside of how much better he can get, the more he plays. That’s what made me like him so much right away.
Early in the offseason, Shanahan was non-committal about Lance’s future, just like he was with Garoppolo. However, Lance’s future was entirely about when — or if — he’d start in 2021; he obviously wasn’t a potential trade chip.
But still, Shanahan wanted to wait until he saw Lance play before determining whether he would consider starting him in 2021.
“I’m not going to sit here and say I’ll never play a rookie quarterback, and I’m not going to sit here and say I will play him,” Shanahan said on “The Rich Eisen Show” in early May. “That’s kind of up to him. When he’s ready to compete, which that doesn’t mean he tells me, that doesn’t mean I tell him. We’ll all see it, and I think it will start with me, but it will go to the coaches, it will go to the players. Guys know when a guy is ready to compete with the starter.”
After first seeing Lance at OTAs, Shanahan thought he would need a lot of time before fighting for the starting job. Then, Lance showed up at training camp and played very well.
“I can tell [Lance] put himself in position to play this year with what he did in the 40 days away,” Shanahan said in early August, per Albert Breer of the MMQB. “You get a guy for OTAs, they come in after rookie camp—and OTAs wasn’t like past OTAs, we didn’t do 10 practices, we didn’t do the minicamp, the reps we had were all cut in half because of everything going on—and he was just trying to take everything in. He looked like a rookie quarterback. You could see the talent. Then they get away for 40 days and you wonder how he’d use that.
“Did it overwhelm him? Did he go over the right stuff? We didn’t see him at all, but I know he was working his butt off. And you come in and you want to see how efficient he was, and how he was working. And the crispness in him picking up stuff compared to OTAs, it was like, Alright, this guy can take it all in, he can learn. And now each day, we keep adding more stuff, and we’re doing it to the whole team, but he’s handling it a lot better than OTAs.”
While Shanahan has been happy with Lance’s growth, he still acknowledged that Garoppolo was the likely starter, unless Lance blew him away in the preseason.
“I think it’s gonna be tough for [Lance] to win the job, just in terms of it being two different styles of quarterbacks, and maybe a little different style of offense for both of them,” Shanahan says. “I’d be very surprised if he did with the way Jimmy’s playing. It’d put a lot on a kid to do that. He’s doing everything he can. I’m very impressed with him so far, but I’d be very surprised if that happened.”
Still, Lance has tried to put his best foot forward and gain ground on Garoppolo during the preseason.
MORE: Where the 49ers QB battle stands after two preseason games
Who started the 49ers’ first preseason game?
Garoppolo, unsurprisingly, started the 49ers’ first preseason game. He played just one drive for the 49ers and was solid. He completed all three of his pass attempts for 26 yards. That said, 11 of his yards came on a screen pass and the 49ers didn’t score on his drive.
Meanwhile, Lance had some issues, but he had the most explosive play of the evening. On the first play of his second drive, he launched a ball downfield that Trent Sherfield caught for an 80-yard touchdown.
The pass was placed perfectly and thrown with an excellent combination of power and touch. Lance wasn’t able to replicate it consistently throughout the game — he completed just 5 of 14 passes for 128 yards and the score — but that was all Lance needed to do to showcase his immense potential.
After the game, Shanahan commented on Lance’s performance. He said it wasn’t perfect, but he was happy there were opportunities to learn from it.
“It was a good first day,” Shanahan said to reporters. “I didn’t want it to go perfect for him. I’d like some things that he could learn from. And there will be a lot of things that we can go over tomorrow.”
Aside from that, Shanahan didn’t say much about the quarterback battle.
IYER: Trey Lance’s preseason debut shows why 49ers should start him
Who started the 49ers’ second preseason game?
Garoppolo started for the 49ers in the second preseason game. Once again, he played just one drive for the 49ers, and it wasn’t a great one.
While Garoppolo had a nice, 10-yard scramble during the drive, his passing was only so-so. He finished the game going 3 of 6 for 15 yards and threw an interception. Brandon Aiyuk probably should have caught it, but the throw was a bit high from Garoppolo. So, he deserves a bit of the blame.
Lance started the game slowly like Garoppolo. His first three drives ended in a punt, an interception and another punt. Like Garoppolo, his interception came on a catchable ball, but he threw it slightly off-target.
However, Lance performed better as the game went along. He got into rhythm running the two-minute drill to close the half, and he ended it with a bullet pass to Mohamed Sanu in the end-zone. That showed off Lance’s arm strength.
Later, he threw a similar touchdown to Travis Benjamin. On this play, he did well to look off the safety and fire an accurate strike with velocity to lead Benjamin to the end-zone.
Lance finished the night going 8 of 14 passes for 102 yards, two TDs and one interception. It was a strong showing for him after the first three possessions, but highlighted his biggest issue: lacking consistency.
After the game, Shanahan said that not much has changed since the offseason, when he implied that Garoppolo would be the starter for the 49ers.
“I think the situation is pretty similar right now,” Shanahan told reporters.
So, does that mean he’s ready to announce Garoppolo as the starter?
“No, I’m not making that announcement,” Shanahan said. “Not tonight.”
Still, it seems like Garoppolo is on track to start Week 1 against the Lions. But perhaps if he has another mediocre outing, Lance can make things interesting.