SANTA CLARA, CALIF. – The Vikings had been waiting 16 months to see what their offense would finally look like with Teddy Bridgewater and Adrian Peterson in the backfield together.

Bridgewater, a 2014 first-round draft pick, was one of the NFL's most efficient quarterbacks down the stretch last season, playing with poise in the pocket and displaying the accuracy needed to excel in the team's new shotgun spread attack.

Peterson, meanwhile, missed the final 15 games of the 2014 season due to his NFL suspension and was itching to get back on the field after an action-less preseason.

The two had never been in the backfield together in a game before Monday night's season opener against the San Francisco 49ers, so there was a lot of excitement over the past few months about the prospect of that pairing.

The Vikings offense delivered a major letdown, though, in an ugly 20-3 loss against a 49ers team that lost several starters in the offseason, including a trio of Pro Bowler defenders in Aldon Smith, Patrick Willis and Justin Smith.

"You know, maybe we're just not ready for prime time yet," coach Mike Zimmer said of his team.

After a sharp preseason, Bridgewater sprayed passes all over the place. On one first-quarter play, wide receiver Jarius Wright streaked up the seam to the end zone with no 49ers nearby, but Bridgewater didn't spot him. And a late interception that he airmailed over the head of tight end Kyle Rudolph sealed a 49ers win.

Bridgewater, who completed 23 of his 32 attempts for 231 yards with one interception, appeared to be rattled as an offensive line that is down two starters faltered in pass protection, allowing little-known 49ers defenders to take turns crashing into him.

"I don't know if it was all the offensive line," Zimmer said. "Some of it was Teddy. Probably a lot of it was Teddy tonight. Teddy did not play well."

Peterson, making his return to the field for the first time since his NFL suspension last season, was a nonfactor with 31 rushing yards on 10 carries. Zimmer said the Vikings wanted to get Peterson more carries, but the 49ers were loading the box, forcing Bridgewater to check out of running plays at the line of scrimmage.

Meanwhile, the other running back wearing No. 28 — San Francisco's Carlos Hyde — was far more productive.

With a heavy emphasis on handing the ball to Hyde on stretch running plays, the 49ers were able to run at will on their opening drive. And they moved deep into Vikings territory by mixing in play-action passes from mobile quarterback Colin Kaepernick. A holding penalty in the red zone, though, torpedoed the 49ers drive.

The 49ers trotted out kicker Phil Dawson for a 28-yard field goal. But safety Andrew Sendejo bolted in from the right side to block the kick. Cornerback Marcus Sherels scooped up the loose ball and returned it to San Francisco 26-yard line.

That would be the start of a first-half comedy of errors starring both teams that included a blocked field goal, a muffed punt, a bunch of first-half flags and a 49ers punt return touchdown that was nullified but not one but two illegal block penalties.

After the big special-teams play, the Vikings came out throwing, with three straight passes that all went incomplete. They called on Blair Walsh to attempt a field goal from 44 yards, but the kicker's struggles continued as he booted the ball wide of the right upright.

The offense got another golden opportunity when linebacker Audie Cole recovered a muffed punt near midfield, but the Vikings squandered that one, too. Facing fourth-and-3 at the 49ers' 31-yard line, they opted to keep Walsh on the sideline and go for the first down. The 49ers foiled them, though, by tackling Rudolph a yard short of the sticks.

The 49ers apparently remembered how much success they had early running the ball with Hyde and went back to the stretch runs late in the second half. Hyde carried the 49ers down the field and finished off the drive by spinning around defensive end Everson Griffen then following his quarterback toward the left pylon for the game's first touchdown.

"Terrible. They were getting five or six yards a pop," Vikings safety Harrison Smith said. "If you can't stop the run, you can't do much."

The 49ers picked up where they left off in the second half, relying on Hyde and the diversity of Kaepernick to drive downfield for a field goal that put them up, 10-0.

The Vikings finally got on the board in the fourth quarter with a 37-yard field goal by Walsh.

The 49ers responded with a 10-play, 80-yard drive to increase their lead to 17-3. Hyde cruised into the end zone untouched from 17 yards out for his second rushing touchdown. They put the game away with another field goal with 6:08 left in the game.

Hyde finished with a career-high 168 yards on 26 carries.

Minnesota's propensity to allow wide running lanes and miss tackles continued an unwelcome trend from 2014, when they were among the league's worst defenses against the run.

"In 17 ballgames here, that did not look like the football team that I know," Zimmer said. "It was a disappointing effort. A lot of credit goes to San Francisco. They were much more physical than we were. That's more of [the kind of] team that I would like to be like."

The Vikings would soon leave Levi's Stadium for a red-eye flight back to Minneapolis. They have a short week to fix their run defense and get Bridgewater, Peterson and their sluggish offense on track before the Detroit Lions come to town this weekend.

"We didn't play up to our standards," wide receiver Mike Wallace said. "We have 15 more games. This is one of them. We don't even have to wait a whole week to play the next one, so that's a positive."

Matt Vensel