Seahawks 30, Vikings 20: Rookie Russell Wilson matched his career high with three touchdown passes and host Seattle snapped a two-game losing streak.
Wilson, who finished 16-of-24 for 173 yards, sandwiched a pair of first-half touchdowns to Golden Tate around a scoring toss to Sidney Rice to give Seattle (5-4) a 20-17 halftime lead en route to improving to a perfect 4-0 at home.
Marshawn Lynch had his third straight 100-yard game with 124 yards and a 3-yard touchdown run that gave the Seahawks a 27-17 lead late in the third quarter.
The Vikings (5-4) wasted a spectacular performance by running back Adrian Peterson, who rushed for 182 yards and a pair of touchdowns on 17 carries in falling for the third time in four games.
Second-year quarterback Christian Ponder had another rough outing for Minnesota, completing 11 of 22 passes for only 63 yards with zero touchdowns and one interception - his eighth pick in the last five games.
The Vikings got within 27-20 on rookie Blair Walsh's 55-yard field goal late in the third, but Steven Hauschka answered with a 40-yarder for Seattle with just under 6 1/2 minutes to play before Brandon Browner picked off Ponder less than a minute later.
GAME NOTEBOOK: Peterson's 144 yards - on 12 carries - in the first half was his career high for the opening 30 minutes and also gave him his franchise-record 31st 100-yard game. ... Wilson has nine touchdown passes and zero interceptions in Seattle's four home wins. ... Walsh's 55-yarder made him 5-for-5 on field goal attempts over 50 yards. He also has two of the three longest kicks in franchise history. ... Lynch had his fifth 100-yard game of the season, giving him 11 in his last 18 games.