The Vikings were far from flawless on Sunday, yet still largely controlled the game in their 26-16 defeat of the Detroit Lions.

Adrian Peterson largely returned to form, and Teddy Bridgewater returned to the steady, level-headed play that earned him accolades as a rookie in 2014.

Additionally, the Vikings' defense mauled the Lions in the running game, limiting Detroit to just 38 total yards on the ground.

More from FoxSports

Yet, the Vikings also squandered some opportunities in a game that appeared destined to be a blowout victory for much of the first half. With a difficult schedule remaining in 2015, Minnesota -- which committed 10 penalties on Sunday -- will have to play with improved discipline moving forward.

Here's a breakdown of all the positives, negatives and head-scratching moments from the Vikings' Week 2 win.

SUNDAY SCHOOL

-- Peterson had a mildly erratic, but largely successful return to the Vikings' home turf. First, the bad news: Peterson fumbled three times (two times officially, since his third-quarter fumble into the end zone was negated by a Detroit penalty). But "All Day" also carried a heavy load, registering 134 rushing yards on 29 carries. He also had a 49-yard catch-and-run off a third-down, desperation shovel pass. The 30-year-old Vikings star is probably feeling better about things overall, after being a non-factor in Minnesota's Week 1 loss at San Francisco.

-- Xavier Rhodes got an intense test all day against Lions star receiver Calvin Johnson. The Vikings' third-year cornerback endured the occasional miscue but, in retrospect, held up decently. Johnson ended the day with 10 receptions and one score, but had just 83 yards receiving. Rhodes survived; perhaps that knowledge will give him increased confidence.

-- Minnesota's 10 penalties cost the club 97 yards. That many penalties in future games could prove costly for Minnesota. However, most of the Vikings' penalties were errors of aggressiveness - such as late hits - which should be correctable.

-- Blair Walsh's struggles continued. Walsh, who labored through the preseason, making just 5 of 11 field-goal attempts, missed his first field-goal try in Week 1, from 44 yards. Against Detroit, Walsh went 2 for 2 on field-goal attempts but missed one of three extra-point tries. That won't inspire confidence from your coaching staff.

DULY NOTED

--Bridgewater is still searching for a go-to receiver. The Vikings' second-year signal-caller found tight end Kyle Rudolph for a team-high five receptions on Sunday, but that resulted in just 30 yards (and one touchdown). Offseason acquisition Mike Wallace was limited to three catches for 38 yards. Charles Johnson was a non-factor for a second straight week (3 receptions, 10 yards). With last year's leading receiver, Greg Jennings (59 receptions in 2014) gone, Minnesota lacks a consistent receiver so far this season.

-- The Vikings' pass rush was lacking, as Detroit's Matthew Stafford passed 53 times but was sacked just once, by defensive end Everson Griffen. With Detroit turning almost exclusively to the passing game as Sunday's clash wore on, Minnesota seemed hesitant to blitz very often.

-- Minnesota was much improved on third down in Week 2. After going just 1 for 9 on third-down conversion attempts in its Week 1 loss, Minnesota converted 7 of 14 third-down attempts on Sunday and also converted on its only fourth-down attempt.

-- The Vikings' first-round draftee, cornerback Trae Waynes, has been relegated strictly to special-teams duty. Waynes, the 11th overall pick in the 2015 draft, covered kicks against Detroit but didn't register a tackle. Fellow rookie, linebacker Eric Kendricks, was far more relevant in Week 2, getting in on five tackles while seeing some action in key defensive situations.

WHAT IT MEANT

The season is still young, but it sure felt like the Vikings had to have this one, especially with a tough road ahead. A solid San Diego club visits TCF Bank Stadium next Sunday, and Minnesota visits Peyton Manning and Denver in Week 4. The win over the Lions lets the Vikings breathe easy, if only for a moment.

PLAYER OF THE GAME

Vikings free safety Harrison Smith seemed to have a hand in most of the game's biggest plays. The 26-year-old former first-round draft pick has started to develop some craftiness, evidenced midway through Sunday's third quarter, when he punched at a ball to force a Lions fumble. Smith finished with five solo tackles and one QB hurry.

DON'T FORGET ABOUT ME

Vikings defensive tackle Linval Joseph invaded Detroit's backfield often. The sturdy, 6-4, 330-pounder finished with four combined tackles, one tackle for loss and one QB hurry.

THAT MOMENT

With 1:48 remaining in regulation, Detroit suddenly had a glimmer of hope, following a 12-yard Eric Ebron touchdown grab that made the score 26-16. But Minnesota's Smith effectively stomped out Detroit's rally on the subsequent two-point attempt, when the safety flew in and promptly stuffed tailback Joique Bell. It was a fitting punctuation to an impressive game for Smith.

THIS NUMBER

12/1/13. That's the last time Peterson had more than the 29 rushing attempts he had on Sunday. On Dec. 1, 2013, Peterson had 35 carries en route to 211 rushing yards as Minnesota beat Chicago, 23-20, at the Metrodome.

THEY SAID IT

"It was a really, really good win today. I'm really proud of how the team responded. I told somebody after last week's loss it felt like we were 0-10, not 0-1." -- Minnesota head coach Mike Zimmer

"I came out and I don't know what it was, my body was a little shot in the first half. But I came back in the second half rejuvenated and had a little more energy." -- Minnesota running back Adrian Peterson

"It was a great job by the guys today responding to coach Zimmer's message and we wanted to put San Fran in the past and come out here and start fast, and we did that today." -- Minnesota quarterback Teddy Bridgewater

WHAT'S NEXT

Minnesota takes on San Diego next Sunday, at noon at TCF Bank Stadium in Minneapolis. San Diego dropped a 24-19 decision at Cincinnati in Week 2, falling to 1-1.

Follow Kelly Beaton on Twitter