SEATTLE -- It had been four years since the 49ers had a 300-yard passing game. It had been longer than that since the Seahawks were 0-2.
"Well, I haven't been here," was J.T. O'Sullivan's pithy answer to that.
San Francisco's new quarterback shook off eight sacks to lead a comeback and Joe Nedney overcame a missed field goal as time expired in regulation to kick a 40-yarder 4:40 into overtime Sunday, sending the revitalized 49ers past Seattle 33-30.
"There's nothing louder than 67,000 people dead silent," Nedney said of Seattle's notoriously noisy crowd.
It watched in disbelief as the Seahawks, the best home team in the NFC over the last several years, lost for just the fifth time in 23 home division games. Seattle is winless after two weeks for the first time since 2002 when it finished 7-9, its last losing season.
They turned over the ball three times, two on deflected interceptions of Matt Hasselbeck. Patrick Willis returned one of those 86 yards for a touchdown. Hasselbeck, missing his top six receivers after two more injuries Sunday, was 18-for-36 for 189 yards -- the second consecutive substandard game for the three-time Pro Bowler.
"We've still got some work to do," Hasselbeck said.
O'Sullivan, the journeyman passer and replacement for failed former No. 1 pick Alex Smith, said he didn't mean to imply he was the savior of the offense.
The 49ers (1-1) settled for O'Sullivan saving them Sunday.
Continually improvising against fierce pressure, he rallied them from deficits of 14-0 and 17-6 to win for just the third time in 11 games against Seattle. The 49ers are thinking they should be 2-0 but for five turnovers in a loss last week to Arizona. So they believe times may be changing in the NFC West.
"I do, especially how we can move the ball now," said running back Frank Gore, whose 2-yard touchdown run late in the third quarter gave the 49ers their first lead at 27-20.
New offensive coordinator Mike Martz, renowned for wild, wide open schemes, has given O'Sullivan five wide-receiver sets and shotgun formations.
A third-stringer during much of his previous five seasons for four teams, O'Sullivan felt the pain of Martz's minimum-protection designs. But he continually bounced back from the eight sacks to complete 20 of 31 passes for 321 yards and one touchdown in the second start of his career.
It was the first time a 49ers QB had eclipsed 300 yards since Tim Rattay threw for 417 against Arizona on Oct. 10, 2004.
"I've been here six years, and in the past we'd fall down 14-0 and we never felt we had the arsenal to come back," receiver Arnaz Battle said.
The 49ers got the ball to start overtime. On third-and-7 from the San Francisco 23, O'Sullivan found Isaac Bruce over the much shorter Josh Wilson for 33 yards. Bruce and O'Sullivan were in tune when the receiver turned his post route into a straight fly.
Bruce caught four passes for 153 yards, his most since 2004, one week after O'Sullivan never even threw his way.
O'Sullivan then threw a quick jump pass for 5 yards to Arnaz Battle on third-and-3. Battle said that was a read between the two after seeing a Seattle blitz coming. That set up Nedney for redemption.
San Francisco nearly won it when O'Sullivan frantically escaped a ninth sack and found Gore for an improvised 17-yard completion. That set up Nedney for a 41-yard kick, but he missed wide right by a few feet, forcing overtime.
"You're only as good as your last kick," Nedney said, smiling. "So I'm feeling pretty good right now."
After Olindo Mare kicked his third field goal, from 32 yards, to put Seattle ahead 30-27 with 7:41 left, O'Sullivan drove the Niners to a 28-yard field goal by Nedney for a tie with 2:42 left.
Early in the fourth Julius Jones, whom the Seahawks turned to largely out of necessity with their passing game wounded, led a 15-play drive that ended with T.J. Duckett's first touchdown with Seattle, from 1 yard. That tied it at 27.
Jones had 127 yards on 16 carries.
The 49ers tied it at 20 midway through the third when Hasselbeck's pass to Billy McMullen banged off him and cornerback Walt Harris near the 5. The deflection floated to Willis at the 14, and the 2007 Defensive Rookie of the Year weaved 86 yards with his first career interception and touchdown.
Then Ray McDonald reached up while getting blocked and batted Hasselbeck's pass into Harris' arms at the Seattle 41. Gore's subsequent 2-yard run, bouncing outside after getting hit, put San Francisco ahead.
Seneca Wallace, Seattle's backup QB readied all week in practice to catch passes injured his groin, apparently during pregame warmups. Then fill-in starting WR Logan Payne left in the first quarter after getting a hit to his right knee on his only reception. Coach Mike Holmgren said Payne had a torn knee ligament. ... 49ers OT Jonas Jennings sprained his shoulder late in the first half. Barry Sims replaced him. ... Willis left with a leg injury in the third quarter.