MINNEAPOLIS -- Sam Bradford pivoted right and saw his completed swing pass to Dalvin Cook become a painful 5-yard loss after being swarmed by San Francisco rookie linebacker Reuben Foster.
Bradford fumbled from the shotgun on Minnesota's next snap, pushing the Vikings another 7 yards back. The punt, one of 11 in 13 preseason possessions by the first team, came one play later.
For an offense that has lagged behind its peers on defense in three years since Mike Zimmer took over as coach, this was a deflating start, even in an exhibition.
More Vikings coverage
- 'Sloppy' Vikings offense strives to correct mistakes before Week 1
- Upon Further Review: Vikings vs. 49ers
- NFC Preview: Vikings upgrade, but Packers still division favorites
- Vikings' starters struggle, but backup Heinicke saves the day
- PHOTOS: Vikings vs. 49ers
"I thought it was just a little bit sloppy," Bradford said after the 32-31 victory on Sunday night fueled by a second half rally behind the backups.
"Too many mistakes. I thought we did a decent job getting drives going, getting a first down, getting two first downs, and then it seems like we just do something to shoot ourselves in the foot and stop it. To be a good offense, to be a good football team, you can't do those things, and we've got to figure out a way to eliminate that."
Such struggles can easily be ironed out prior to or during the regular season, of course, but the most troubling aspect of the performance was that it felt and looked so familiar.
With Cook and Latavius Murray joining Jerick McKinnon in the backfield, Stefon Diggs, Adam Thielen and Kyle Rudolph complemented in the passing attack by newcomer Michael Floyd with any contribution by Laquon Treadwell an additional bonus, this group does not lack vitality or versatility.
Bradford, who set the NFL record for completion percentage in 2016, has proven his accuracy when he's protected.
Bradford looked sharp when he had time to throw against the 49ers. Even when he was flushed from the pocket, he more than once made a deft move away from the pressure to set up a downfield heave. Bradford completed 17 of 21 passes for 134 yards and no turnovers.
The revamped line, however, is obviously still a work in progress.
Riley Reiff was in at left tackle for the first time after missing the beginning of training camp with back trouble and left guard Alex Boone was back after a brief absence to a leg injury, but the front five was far from formidable.
"If we come in at halftime next week and are doing the same thing," Boone said, looking ahead to the season opener on Sept. 11 against the New Orleans Saints, "then it becomes a concern. More than a concern: a problem. To have everybody out there for the first time together, talking, communicating, playing together, it was good for that. But we have to do more on offense."
Nick Easton started ahead of rookie Pat Elflein at center, a signal that competition could be wrapped up for now. Joe Berger has remained at right guard, though both Easton and Elflein have taken turns there too. Mike Remmers is the unchallenged starter at right tackle, but he has appeared to be the most vulnerable against the pass rush in the small sample size of these exhibition games.
"We'd like to be sharper, but like I said last week, `I've been on some teams where we went out in the preseason and lit it up, and then come Week 1 we didn't look like the same team at all,'" Bradford said. "Anytime you step on the field, you want to be sharp. I don't think we were our best tonight. There are a lot of things that we have to get corrected."