SEATTLE (AP) -- Russell Wilson avoided two potential sacks and found Paul Richardson in the front corner of the end zone for a 9-yard touchdown with 7:06 left and the Seattle Seahawks held on for an unsightly 12-9 win over the San Francisco 49ers on Sunday.
It was an offensive nightmare as both teams had combined for 14 total quarters without a touchdown this season before the Seahawks finally broke the seal on the goal line. Wilson avoided Arik Armstead in the pocket and got his pass away before DeForest Buckner could pull him down. Seattle (1-1) snapped a streak of more than 112 minutes without a touchdown, despite missing on opportunities twice inside the 49ers' 10-yard line earlier in the game.
Wilson was erratic at times and magical at the end. He was 23 of 39 passing for 198 yards. He rushed for another 34 yards, 27 coming on the decisive scoring drive. Wilson was 4 of 5 on the drive and aided by a 20-yard pass interference penalty against Dontae Johnson.
Blair Walsh added field goals of 25 and 27 yards, but missed the extra point after Richardson's TD that could have given the Seahawks a four-point lead. The 49ers (0-2) only needed a field goal to tie but never got into position to have an opportunity.
San Francisco went three-and-out after the touchdown, punted and never got the ball back. Rookie Chris Carson rushed for 93 yards, including 58 yards in the fourth quarter.
Robbie Gould kicked three field goals to amount for San Francisco's output, but the 49ers remained without a touchdown through two games. Carlos Hyde rushed for 124 yards, including a 61-yard run in the first half, but Brian Hoyer was 15 of 27 for 99 yards passing and an interception.
San Francisco took the lead on Gould's 34-yard field goal with 11:36 to play, capping a drive on which the 49ers continued to run the ball well with Hyde and backup Matt Breida. Jeremy Lane's shoestring tackle dropped Breida after a 13-yard gain when it appeared he had a path to the end zone.
Seattle should have found the end zone earlier, but had dropped passes on two drives inside the 49ers' 10 in the first half. C.J. Prosise dropped a potential touchdown near the goal line on Seattle's first drive. Tanner McEvoy was unable to corral a high pass from Wilson in the end zone on the second drive.
San Francisco lost safety Eric Reid to a knee injury in the third quarter. Reid appeared to hurt his left knee in the first half trying to cover Tyler Lockett in the open field. He was helped to the sideline and sat the rest of the half before returning ion the third quarter. He lasted about five minutes of the third quarter before walking off the field with trainers again.
Seattle running back Eddie Lacy was a healthy scratch for Sunday's game. It was a surprise absence as Lacy had not appeared on any injury reports this season. Like much of Seattle's offense, Lacy struggled to get going in the opener against Green Bay and was limited to 3 yards on five carries.
With Lacy out, the bulk of the carries went to rookie Chris Carson and Thomas Rawls.
49ers: San Francisco has a quick turnaround and will host the Los Angeles Rams on Thursday night.
Seahawks: Seattle will make its second long road trip of the season, traveling to Tennessee next Sunday.