SANTA CLARA, Calif. — For the past two-plus seasons, Jordan Mason has always looked the part of a starting running back. He just hadn’t been able to play it until Monday night.
The wait might have been longer than Mason wanted and come about under less-than-ideal circumstances — replacing an injured Christian McCaffrey — but it was clear in the season opener that Mason was more than ready for the job, as he and the Niners battered the New York Jets on the ground in a 32-19 victory.
“I’ve been working all of training camp for this moment, and I’m blessed to be able to get to play today and show it,” Mason said.
By the time Mason was done, he’d set career highs with 28 carries for 147 yards. He added a rushing score and caught a pass for 5 more yards. After the win, some were left wondering when the Niners knew McCaffrey would be out and Mason would be in.
In an on-field interview with ESPN’s Lisa Salters, Mason suggested he found out “maybe Friday night” that he could be in line for the start. Coach Kyle Shanahan offered that no decision was made on Friday and nothing was decided until Monday.
Regardless, Mason’s start came as a surprise after McCaffrey was announced as an inactive 90 minutes before Monday night’s game because of lingering calf and Achilles injuries. During the week, McCaffrey participated in all four Niners practices on a limited basis and was officially listed as questionable on Saturday’s final injury report.
Despite all of that, the expectation for McCaffrey was that he would be ready to roll. McCaffrey said Friday afternoon he had no doubts that he would play against the Jets and expressed hope he’d be in line for his usual heavy workload.
After the game, Shanahan said that “it was a little too much today” for McCaffrey to be able to play, noting that San Francisco “thought it was going to be smart to keep him out.” Shanahan added that McCaffrey did not have a setback in practice.
“It was on and off throughout the week,” Shanahan said. “He was able to practice throughout the week, just it was always bothering him to a degree. Sometimes it goes away. Sometimes it comes back. Today, it was bothering him a little too much where he didn’t feel good about it.”
McCaffrey’s injury combined with the season-ending hamstring injury to Elijah Mitchell in training camp opened the door for Mason to ascend the depth chart, an opportunity he quickly claimed with a strong camp that likely would have boosted him past Mitchell anyway.
Mason’s training camp performance left the Niners confident that he was ready to step in and produce despite never having more than 11 carries, 69 yards or 27 offensive snaps in an NFL game before Monday night.
His 28 carries were the most in a regular season game by a Niner since Shanahan took over in 2017 and the most in a 49ers season opener in franchise history. His 147 were the fourth-most rushing yards in a season opener by an undrafted player all time and the second most by an undrafted player on Monday Night Football.
That production was no surprise to those in the Niners locker room who have seen Mason develop from 2022 undrafted free agent out of Georgia Tech into a player who averaged 5.6 yards per carry in his previous 33 NFL games.
“Every time he touched the ball, in my recollection, he looked like that,” left tackle Trent Williams said. “He looked like that tonight. … I’m sure he’s grown up over the last couple years, but it’s not like I could see a glaring hole and he matured. He came in pretty mature and he was always ready for his opportunity. Even being third, fourth back, he was always ready and he came in, closed a lot of games for us and ran tough and he earned everybody’s respect.”
Many of Mason’s teammates, including receiver Deebo Samuel Sr. and fullback Kyle Juszczyk said they found out Friday that Mason would be starting for McCaffrey. Shanahan said he and other coaches had told Mason throughout the week that he might have a bigger role and to be ready for it but he didn’t tell him he was starting for sure until Monday afternoon.
“We found out he wasn’t playing today and we don’t know how he’s going to feel tomorrow or the next day,” Shanahan said. “I thought he was playing this whole week until today.”
Depending on how the rest of this week goes for McCaffrey, there might be no such mystery as the Niners prepare for a trip to play the Minnesota Vikings on Sunday. San Francisco’s next two games are on artificial surface, which could be a deterrent to having McCaffrey return right away.
Shanahan said it’s too early to make any declarations on that now as McCaffrey will again be monitored as the week goes on.
“I’ll ask the player how he’s feeling,” Shanahan said. “If they feel good and they’re ready to go, they’re ready to go. If they say I feel good on grass but not on turf, that’s usually a way of saying that you don’t really feel that good. We’ll see how he feels tomorrow. See the next day and we’ll see how he feels on Sunday.”
And if the Niners have to go back to Mason, there will be no hesitation given what he did Monday night.
“I thought he runs like he always does,” Shanahan said. “When you get him the ball, he breaks tackles usually gets more than we block for. When we had the good lanes, he always hit them and we got a bunch, but JP was awesome today.”