It took all of one game for the decision to re-hire Robert Saleh as defensive coordinator to pay big dividends for the San Francisco 49ers.
In a game where interceptions and special teams blunders put them in difficult positions, the 49ers stepped up on defense in major fashion, holding the Seattle Seahawks to 227 total yards in a 17-13 win at Lumen Field in Seattle. The defense countered the mistakes of their other units with two turnovers of their own, including a late-game strip sack by defensive end Nick Bosa that stopped a potential game-winning drive. The win marked a triumphant return for Saleh, who came back as defensive coordinator after a stint as head coach for the New York Jets.
The 49ers trailed 13-10 late in the fourth quarter when quarterback Brock Purdy found tight end Jake Tonges for a game-winning touchdown with less than two minutes to play. Tonges had played in 20 NFL games prior to Sunday without catching a pass, but with tight end George Kittle on the sidelines due to injury, he made his first three NFL catches on the final drive, helping the 49ers to a hard-fought win.
Purdy finished with 277 yards, two touchdowns and two interceptions on 26-of-35 passing. Seahawks quarterback Sam Darnold threw for 150 yards on 16-of-23 passing with no touchdowns or interceptions.
The Seahawks started the game with possession after a touchback on the opening kickoff and moved across midfield with an 18-yard completion from Darnold to wide receiver Jaxon Smith-Njigba (nine catches, 124 yards), but the 49ers held firm on defense and forced a punt. After taking over at their own 5-yard line, the 49ers moved past the 20 before facing a 3rd-and-8 at their own 21. Purdy then connected on back-to-back completions to wide receiver Ricky Pearsall (four catches, 108 yards), the first for 26 yards and the second being a 13-yard gain that took the ball to the Seahawks' 40. A roughing the passer penalty on defensive lineman Leonard Williams kept the drive alive on a 3rd-and-9 from the 39, then the 49ers moved to the 10-yard line after a short run by Christian McCaffrey and an 11-yard completion to Kittle.
A false start penalty on tight end Luke Farrell pushed the ball back to the 15-yard line, then a 9-yard run by Purdy put the 49ers in a 3rd-and-Goal from the 5. Purdy then lofted a pass to Kittle, who crossed the goal line to give the 49ers a 7-0 lead. The drive spanned 95 yards on 14 plays and took over eight minutes off the clock before the 49ers took the first lead of the game late in the first quarter.
There's Kittle. In the end zone: FOX
— San Francisco 49ers (@49ers) September 7, 2025
NFL+ // https://t.co/KTh0i4oaLh pic.twitter.com/BzYOg5f80b
The Seahawks then moved downfield quickly after two runs from Zach Charbonnet, an unnecessary roughness penalty on cornerback Deommodore Lenoir, and a 21-yard completion to Smith-Njigba. From there, the Seahawks moved inside the 5-yard line on a series of runs, then they were given a first down after cornerback Upton Stout was flagged for pass interference on a 4th-and-3 play from the 4-yard line. Charbonnet ran in from one yard out on the next play to tie the game at 7.
First of the game. Here we goooo ?: FOX pic.twitter.com/UFvX70M2JU
— Seattle Seahawks (@Seahawks) September 7, 2025
The offenses stalled for a bit after that as the two teams traded three-and-outs, then the 49ers punted back to the Seahawks after a five-play possession. After another three-and-out from the Seahawks, the 49ers took over at their own 34-yard line and got their offense moving again with back-to-back completions to McCaffrey followed by a third-down completion to wide receiver Jauan Jennings to move into Seahawks territory. Purdy then connected on a 25-yard pass to fullback Kyle Juszczyk to move inside the 20, then runs from McCaffrey and Purdy moved the ball inside the 10 and brought the second quarter to the two-minute warning. The drive stalled from there, forcing the 49ers to settle for a 27-yard field goal attempt from kicker Jake Moody, which hit the upright and fell no good with 57 seconds remaining in the half.
DOINK! The 27-yard field goal attempt from Jake Moody is no good: FOX pic.twitter.com/pUgTdaltLe
— FOX Sports: NFL (@NFLonFOX) September 7, 2025
That proved to be enough time for the Seahawks to move back into field goal range, due in large part to a 22-yard completion to Smith-Njigba on the second play of the ensuing possession that moved the ball near midfield. A short completion to wide receiver Cooper Kupp followed by runs from Charbonnet and Darnold moved the ball to the 49ers' 30-yard line, after which the Seahawks took a 10-7 lead on a 48-yard field goal by kicker Jason Myers with two seconds remaining.
The 49ers held an advantage of 166 to 122 in total yardage at the half and held the ball for over 18 minutes, while Purdy out-passed Darnold 124 to 72. But with the missed field goal from Moody being the difference, the 49ers entered the locker room with their first halftime deficit of the season.
Things started out well for the 49ers out of the gate in the third quarter, as a completion from Purdy to McCaffrey moved the ball to midfield. The tide turned quickly, however, as four plays later Purdy sailed a pass into the hands of linebacker Ernest Jones, who hauled in the interception and gave the Seahawks the ball at their own 29-yard line.
Ernest Jones IV with the @Seahawks INT!SFvsSEA on FOXhttps://t.co/HkKw7uXVnt pic.twitter.com/LLPzjquZ9O
— NFL (@NFL) September 7, 2025
The defense answered the bell for the 49ers by holding the Seahawks to a three-and-out, then the 49ers took over at their own 25 after an 18-yard punt return by Skyy Moore . The 49ers churned their way downfield with a series of runs by McCaffrey and Robinson, then moved past the Seahawks 30-yard line on a 4th down conversion pass to tight end Luke Farrell. The 49ers faced a 4th-and-2 four plays later but elected to go for another field goal, this one from 36 yards. But this time the field goal was blocked by safety Julian Love, giving the Seahawks possession at their own 31-yard line after a recovery by linebacker DeMarcus Lawrence.
BLOCKED!SFvsSEA on FOXhttps://t.co/HkKw7uXVnt pic.twitter.com/vGrVz123Bu
— NFL (@NFL) September 7, 2025
Once again, the 49ers' defense went on to bail their special teams out. The Seahawks moved across midfield following the blocked kick, then the defense came up with their first turnover of the day -- a forced fumble by defensive lineman Sam Okuayinonu that was recovered by rookie safety Marques Sigle on the first play of the fourth quarter.
FUMBLE! @49ers ball.SFvsSEA on FOXhttps://t.co/HkKw7uXVnt pic.twitter.com/O41Ssffd5h
— NFL (@NFL) September 7, 2025
The 49ers took over at their own 34-yard line and quickly moved into the red zone due in large part to a 14-yard run by McCaffrey followed by a 24-yard completion to Pearsall. After a 9-yard run from Robinson to get the 49ers over the 20-yard line, the 49ers faced another fourth-down decision after two negative runs by McCaffrey. On a 4th-and-2 from the 14-yard line, the 49ers decided not to leave things in the hands of their kicking game and converted with a pass to McCaffrey that moved the ball to the 8-yard line. But things imploded inside the 10 as McCaffrey was stopped for no gain, then after an incomplete pass in the end zone intended for Pearsall, a false start penalty on tackle Colton McKivitz, and an incomplete pass to McCaffrey, the 49ers had to turn back to Moody once more, this time from 32 yards. Moody split the uprights this time, tying the game at 10 with less than ten minutes to play.
The fingertips saved a TD pic.twitter.com/zv9ATBLfzC— NFL (@NFL) September 7, 2025
The Seahawks took over at their own 37 after a 36-yard kick return by Cody White but quickly moved backwards after an eight-yard first down tackle-for-loss by Bosa on Smith-Njigba. A terrific broken up pass by cornerback Renardo Green followed by a failed hook-and-ladder attempt on third down led to another three-and-out from the Seahawks, giving the 49ers back with just over eight minutes remaining.
No green light there ?♂?: FOX
— San Francisco 49ers (@49ers) September 7, 2025
NFL+ // https://t.co/KTh0i4oaLh pic.twitter.com/OlRPulEzic
That opportunity was squandered, however, when Purdy floated an interception to cornerback Josh Jobe, which gave the Seahawks the ball back at their own 48-yard line. The Seahawks turned that interception into points but only a field goal as the 49ers defense held firm inside the 30, forcing a 4th and 1 at the 19-yard line. The Seahawks elected go for three instead of a first down and opened up a 16-13 lead after Myers connected from 37 yards.
Jobe takes what you give him.: FOX pic.twitter.com/XsmzXJayJ8
— Seattle Seahawks (@Seahawks) September 7, 2025
The 49ers took over at their own 32 after a 24-yard return from Moore, then on the second play of the drive, Purdy found Pearsall for a monster gain of 45 yards to the Seahawks' 22-yard line . A two-yard completion to tight end Jake Tonges moved the clock to the two-minute warning, then Purdy found Tonges again for a nine-yard gain to the 11-yard line. A one-yard run and a six-yard catch by McCaffrey set up a 3rd-and-3 from the 4-yard line, then in improbable fashion, Purdy escaped the pass rush and lofted a pass into the hands of Tonges in the end zone, giving the 49ers the lead. Moody connected on the extra point, putting the score at 17-13 with 1:34 to play.
Purdy making magic happenJake Tonges with the hands
: FOX
— San Francisco 49ers (@49ers) September 7, 2025
NFL+ // https://t.co/KTh0i4oaLh pic.twitter.com/26IBNBe9MT
The Seahawks weren't about to go quietly. After starting at their own 35-yard line following a touchback, completions of 11 and 40 yards to Smith-Njigba put the ball at the 14-yard line. A penalty moved the ball up five yards, but then it was Bosa's turn to step up. Bosa pushed offensive tackle Abraham Lucas into Darnold, causing a fumble that Bosa recovered at the 16.
NICK BOSA CALLS GAMESFvsSEA on FOXhttps://t.co/HkKw7uXVnt pic.twitter.com/7cck4psHjo
— NFL (@NFL) September 7, 2025
The fumble recovery was the last nail in the coffin for the Seahawks, who watched as the 49ers ran out the clock to take the win. The 49ers now stand at 1-0 after the victory, while the Seahawks were the lone NFC West team to open their season with a loss.
Game Notes: The Seahawks now lead the overall series with the 49ers 31-24... Moody has now missed a field goal in each of his past four regular season games (six total missed field goals and one missed extra point), dating back to last season... Kittle left the game with a hamstring injury in the first half and did not return... Next up for the 49ers is a road game in New Orleans against the Saints (0-1), who fell 20-13 to the Arizona Cardinals earlier on Sunday. The game will kickoff at 1 p.m. ET/10 a.m. PT on FOX.
More must-reads:
Get the latest news and rumors, customized to your favorite sports and teams. Emailed daily. Always free!