The Vikings’ 13-3 preseason loss to Baltimore did not feature Kyler Murray, Justin Jefferson or most of Minnesota’s expected starters. Kevin O’Connell and Ravens coach Jesse Minter made that decision after two competitive joint practices earlier in the week.
That did not make Saturday meaningless.
It made the game about a different group of players: the backups trying to define their roles and push for snaps, the rookies trying to prove they are ready and the coaching staff trying to find out which depth options can be trusted when the regular season arrives.
Minnesota did not help itself. The Vikings lost the turnover battle, committed nine penalties and struggled to generate sustained offense. O’Connell said afterward that the team did too many of the things it wanted to avoid, especially negative plays that created third-and-long situations.
Here are five takeaways from the game.
1. The QB2 question is still not settled

J.J. McCarthy’s first quarter contained the exact mixture that has made his development difficult to evaluate.
He made the best offensive play of the day, escaping pressure, climbing the pocket and delivering a 50-yard completion to Tai Felton. He also found Demond Claiborne on a checkdown that put the Vikings near the goal line.
Then came the missed opportunity.
McCarthy fired a hard pass to Felton in the end zone that was not secured, and on fourth-and-goal from the 1, he sailed a throw over an open Myles Price. The official Vikings recap described the issue neatly: a little less mustard would have done the trick.
McCarthy finished 5 of 10 for 81 yards. He dealt with an overwhelmed backup offensive line, two false starts, and a quiet running game. Those factors matter. So does the fact that Minnesota came away empty after its best drive.
Carson Wentz followed with a much steadier second quarter, completing 9 of 11 passes for 92 yards and leading the Vikings’ only scoring drive. He did not produce McCarthy’s highlight, but he consistently took the completions available to him and moved the chains.
O’Connell did not declare a winner afterward. He said McCarthy was originally supposed to receive more work, but got “a little banged up” and seemed fine. The staff still wants to give McCarthy, Wentz and Max Brosmer enough opportunities to show where they stand.
That is the important takeaway. Wentz has made the backup question legitimate, but O’Connell did not treat Saturday as a final audition. There is still one preseason game and another week of practice before Minnesota has to determine its depth chart.
2. Tai Felton Answered Myles Price’s Big Game
Price starred last week, challenging Felton’s WR4 spot. This time, Felton had the biggest plays of the day.
Felton’s 50-yard catch was not just a fun preseason highlight.
It offered another sign that the second-year receiver is pushing beyond the label of developmental player. He finished with three catches for 66 yards, and his ability to win a contested downfield ball made him the Vikings’ most productive offensive player.
O’Connell’s comments afterward were even more revealing than the stat line.
The coach praised Felton’s camp and said the Vikings want to see him execute at multiple receiver positions because that is what his game-day role will require. He also cited Felton’s speed and explosiveness before calling him a potential “48-man kind of game-day roster” player who can contribute on special teams.
That is meaningful.
Justin Jefferson, Jordan Addison and Jauan Jennings are Minnesota’s established top three receivers. Felton does not need to overtake any of them. He needs to be ready to replace any of them for a series, a game or a specific package, while also providing value in the kicking game where he was quietly excellent in 2025.
The consistency still has to come. Felton had a false start Saturday and has had some drops during the preseason. But with a strong depth chart ahead of him, the Vikings can be patient with their third-round investment from a year ago.
3. Jacob Thomas is more than a camp story
The safety room has become one of the more interesting roster battles in Minnesota.
Joshua Metellus is entrenched. Jay Ward, Theo Jackson and rookie Jakobe Thomas all have cases for meaningful work. Jamal Adams’ season-ending injury also changed the numbers and created another path for a young player to make the team.
Jacob Thomas keeps taking advantage.
The undrafted rookie from James Madison recorded a game-high six tackles, added a pass breakup and had a highlight hit negated by a teammate’s penalty. More importantly, he has been productive throughout camp, not just in one preseason appearance.
O’Connell was emphatic in explaining why Thomas has acclimated so quickly.
“He’s really smart. He’s really instinctive. He’s a great communicator,” O’Connell said. He added that Thomas has been good in the deep part of the field and called him “a great find.”
That is about as direct an endorsement as a fringe-roster player can receive in August.
Special teams will still help decide Thomas’ immediate future. Flores also values versatility, and the Vikings have more safety candidates than obvious jobs. But Thomas has made himself difficult to dismiss. At this point, the undrafted rookie is competing for more than a practice-squad invitation.
4. Caleb Banks took a needed step forward
Banks’ preseason debut against the Giants looked like what it was: the first live NFL action for a rookie defensive tackle coming off a lengthy injury recovery.
He looked more comfortable against Baltimore.
Banks registered an early quarterback hit, made a run stop and played with better urgency. He still has plenty to learn, but the difference from his first appearance was noticeable enough that O’Connell addressed it after the game.
“It’s all about pad level,” O’Connell said. “It’s all about understanding there’s a way you have to play in the NFL.”
The coach said Banks is beginning to get his football legs back underneath him and viewed Saturday as another step toward having him ready for Sept. 13.
That is the appropriate expectation for Banks. Minnesota does not need him to become a finished player during the preseason. The Vikings need him to continue stacking reps, learn to play with a more consistent base and show that his athletic traits can translate against NFL offensive linemen.
Saturday was not a breakout, but it was useful for the short term: progress.
5. The self-inflicted mistakes cannot become a habit
The final score did not matter. The way Minnesota reached it did.
The Vikings were flagged nine times, including six offensive penalties. They lost a fumble, Max Brosmer threw an interception and the offense repeatedly found itself facing long-yardage situations.
O’Connell noted that some of the procedural issues involved players who have received limited practice work in certain formations. That is fair context, especially in a preseason game filled with reserves.
It is not a complete excuse.
Minnesota had two more false starts at home against Baltimore after committing eight against the Ravens in the same stadium last November. The Vikings also took two special-teams penalties, something the unit must eliminate before roster cuts force inexperienced depth players into larger roles.
The punter competition remains unresolved, too. Rookie Brett Thorson pinned Baltimore inside the 20 twice while handling his first meaningful opportunities as a holder. Veteran Johnny Hekker averaged 55 yards on three punts and launched a 65-yarder that flipped the field.
Both showed value. Neither separated decisively.
The Vikings have one preseason game left in Denver. Don’t expect to get another look at the starters. For the players lower on the roster, it will be about proving they can avoid the sort of mistakes that kept Minnesota from making Saturday competitive.