SEATTLE — For all the late-game mistakes and missed opportunities throughout their disappointing season, the Seattle Seahawks continue to believe there is something worth playing for.
They showed the San Francisco 49ers exactly that Sunday.
“No matter how people bash us and say we’re done and all this, we always believe,” Seattle safety Quandre Diggs said.
Russell Wilson played his best game since returning from finger surgery, throwing for 231 yards and two touchdowns, and the Seahawks made a late goal-line stand to beat the 49ers 30-23 on Sunday.
Seattle (4-8) snapped a three-game losing streak but it wasn’t easy as a number of mistakes gave the 49ers a chance for a tying touchdown in the final moments.
With the playoffs still a mathematical possibility, the Seahawks are refusing to fall into the mode of playing out the final weeks. This week, it came at the expense of the Niners’ playoff chase.
“I have some amazing teammates, guys who were super supportive this week, just giving me some good energy, too, and vice versa,” Wilson said. “And let’s just go for it. Let’s just have fun while we do it. And we were able to do that tonight.”
It was far from a clean game for Seattle, though. Gerald Everett was responsible for three turnovers, capped by fumbling at the San Francisco 2 with 4:03 remaining and Seattle on the cusp of a clinching score. Jimmy Garoppolo led the 49ers 95 yards to the Seattle 3. But his third-down pass for Trent Sherfield was broken up by Sidney Jones, and his fourth-down pass was deflected at the line of scrimmage by Carlos Dunlap.
It was the second big play by Dunlap, who sacked Garoppolo for a safety early in the third quarter.
“When given the opportunity to go straight and impact the game in those situations, I like my odds and I’m betting with me every time,” Dunlap said.
Newly signed running back Adrian Peterson moved into a tie with Jim Brown for 10th all-time with 126 career touchdowns, scoring on a 1-yard run in the second quarter for Seattle.
Wilson threw a 7-yard touchdown to Dee Eskridge in the second quarter and his 12-yard touchdown to Tyler Lockett late in the third quarter provided the winning points.
Travis Homer also ran 73 yards for a touchdown on a fake punt on the opening possession of the game for Seattle.
“It’s a pretty cool call to go for that,” Seattle coach Pete Carroll said.
San Francisco (6-6) saw its three-game win streak snapped and was swept by Seattle this season. The 49ers were unable to get their run game going as in recent weeks, with Elijah Mitchell rushing for 66 yards on 22 carries. San Francisco had averaged 178.3 yards rushing per game during its three-game win streak but finished with 71 yards against the Seahawks.
Garoppolo threw for 299 yards and two TDs, but also had a pair of interceptions, the second grabbed by Diggs and setting up Seattle’s go-ahead touchdown.
George Kittle had nine catches for 181 yards and two touchdowns, but was shut down in the second half until the final drive.
“Our offense, we didn’t really do anything in the second half. And it’s hard to win in Seattle if you don’t do anything the second half,” Kittle said.
On that final drive it took San Francisco five plays to reach the Seattle 30, including completions to Kittle of 29 and 14 yards. Brandon Aiyuk’s 11-yard catch got the 49ers to the Seattle 7, two runs by Mitchell yielded only 4 yards and Garoppolo couldn’t connect on his last two throws.
San Francisco reserve running back Trenton Cannon was taken off the field on a backboard after a scary collision on the opening kickoff against Seattle. Cannon was attempting to make a tackle on DeeJay Dallas when his head hit the leg of a teammate. The 49ers said Cannon had a concussion, was in stable condition at a Seattle area hospital, and would remain overnight for observation.
Kittle was just the second tight end in the past five seasons with at least 100 yards receiving and two touchdowns in the first half. Darren Waller also did it last season against the Jets. Kittle had five catches for 121 yards and two TDs in the first half.
The 49ers didn’t have starting wide receiver Deebo Samuel due to a groin injury, starting linebacker Fred Warner (hamstring) and LB Marcell Harris (concussion). CB Emmanuel Moseley suffered an ankle injury in the first quarter and did not return.
Seattle was without starting RB Alex Collins, who had been dealing with an abdominal/core injury for several weeks, and left guard Damien Lewis. Seattle lost safety Jamal Adams to a sprained shoulder injury late in the first half. Adams returned to the sideline in the third quarter in sweats and Carroll said he did not know the extent of the injury. RT Brandon Shell also left in the second half due to a lingering shoulder injury.