SEATTLE – Here are the five biggest reasons the Seahawks were smiling and the Vikings weren't on Monday night:

Left tackle Duane Brown, left guard J.R. Sweezy, center Justin Britt, right guard Jordan Simmons and right tackle Germain Ifedi.

And if you need a sixth key reason for Seattle's 21-7 victory at CenturyLink Field, throw in George Fant, who played a large chunk of the game as an eligible third tackle as Seattle ran 42 times for 214 yards (5.1) and a touchdown.

"It's hard to run the ball 42 times in the NFL," said Seahawks coach Pete Carroll, whose team improved to 8-5 while dropping the Vikings to 6-6-1. "Not many teams can do that. … And if they can't stop you, you don't need to throw the ball."

Vikings Nation is sure to spend this week complaining about offensive coordinator John DeFilippo's play-calling. And, yes, there were multiple instances when young John should have followed Mike Zimmer's instruction to run the ball.

But if he's hesitant to run the ball, it's because the Vikings offensive line hasn't played well enough to be trusted.

Meanwhile, Seattle got by with Russell Wilson completing 10 passes for 72 yards and a boneheaded interception as the Vikings' seventh-ranked run defense was gashed for more than 200 yards for only the third time since Mike Zimmer took over in 2014.

"That's just stats," defensive end Danielle Hunter said. "We held them most of the game. It was 3-0 and 6-0. The stats didn't matter at that point."

Defensive end Stephen Weatherly pointed to two runs that he felt padded the running stats.

"Wilson got out of the pocket and ran [40 yards] down the sideline and [Rashaad Penny] reversed field and got [17 yards]," he said. "Subtract those two runs, and when they wanted to run the ball, that's the total they got."

No, the defense isn't to blame for a loss in which it gave up 14 points. But Seattle was able to control the game by running the ball and playing great defense.

En route to its first field goal and a 3-0 lead, Seattle ran the ball seven times in 12 plays. The Seahawks had six consecutive runs for 9, 7, 10, 8, 8 and 4 yards.

For the longest time, a 3-0 game felt like the ugliest blowout in NFL history because of the differences in the two teams' running games.

The result was the third-most rushing yards against a Zimmer-coached Vikings team. They gave up 230 to the 49ers in the 2015 opener and 216 yards to the Panthers last year.

"If you want to be a championship team, you have to find ways to win," Wilson said. "Even when it doesn't look pretty."

Passing-wise, five Seahawks tied for second on the team with one catch. One of them was Fant, an undrafted rookie tackle from 2016, who rumbled for 9 yards.

"I gave him a game ball," Wilson said. "He's one of our MVPs. He made a great catch. I threw it pretty hard, too. He could have gotten more yards, but I think he tripped over his own feet."

The Seahawks improved on their league-leading rushing total of 148.8 yards per game for the season and 164.8 since new coordinator Brian Schottenheimer recommitted to the run in Week 3.

And they did so with Simmons, a waiver-wire pickup from Oakland this year, filling in for prized free-agent signing D.J. Fluker. In the other game Simmons has filled in for Fluker this season, Seattle ran for 273 yards against the Rams in Week 10.

Ifedi is a first-round draft pick from 2016. Britt was a second-rounder in 2014. Sweezy was a seventh-rounder in 2012 who returned after spending the past two years in Tampa Bay. And Brown, a four-time Pro Bowl lineman, was a great investment via trade from Houston last season.

Take a bow, fellas. You're actually doing everything the Vikings have only been able to talk about doing this season.

Mark Craig is an NFL and Vikings Insider. Twitter: @markcraigNFL. E-mail: mcraig@startribune.com