Caleb Williams found his favorite target when it mattered most.
Jordan Addison caught Williams' go-ahead 21-yard touchdown pass with 1:13 left and No. 7 USC overcame a shaky performance for a 17-14 victory against Oregon State on Saturday night.
The Beavers, vying to start 4-0 for the first time since 2012, took the lead on Jam Griffin's 18-yard touchdown run with 4:41 remaining.
But Williams led an 11-play, 84-yard drive — and even scrambled on a fourth down that preserved it. He connected with Addison for their sixth touchdown of the season.
Get Southern California news, weather forecasts and entertainment stories to your inbox. Sign up for NBC LA newsletters.
The Trojans (4-0, 2-0 Pac-12) did not look like the team that dominated its first three opponents with 40 or more points per game. Williams threw for a season-low 180 yards. Addison, the 2021 Biletnikoff Award winner who transferred from Pitt, caught three passes for 42 yards.
Travis Dye, a transfer from Oregon, caught 19 passes for 136 yards and a score for the Trojans. He never doubted Williams on the final scoring drive.
Get today's sports news out of Los Angeles. Here's the latest on the Dodgers, Lakers, Angels, Kings, Galaxy, LAFC, USC, UCLA and more LA teams.
“He was super composed. He was ready to go after it,” Dye said. “He knew that he was going to get it done.”
But the Trojans relied on defense most of the night, intercepting Beavers quarterback Chance Nolan four times.
“We put ourselves in some really good spots, and we shot ourselves in the foot,” Oregon State offensive lineman Brandon Kipper said. “Against good teams, you're not always going to come back from that.”
The Trojans were uncharacteristically sluggish from the start. Oregon State (3-1, 0-1) stopped USC on downs on its opening series. On the second drive, Denis Lynch's 36-yard field goal attempt went wide left.
Deshaun Fenwick's 4-yard touchdown run put the Beavers up 7-0 early in the second quarter. It was his fourth TD of the season.
Oregon State appeared headed back to the end zone but Nolan was intercepted by Erik Gentry. The Trojans capitalized, going 41 yards on seven plays and finishing with Lynch's 42-yard field goal to narrow it to 7-3 at halftime.
Kitan Oladapo sacked Williams on third down for a loss of 11 yards, stalling a USC drive on the Oregon State 45 and forcing a punt.
But USC answered. Nolan was intercepted by Ceyair Wright, who ran it back to the Oregon State 26. The Trojans finished the drive with Dye's 7-yard scoring run to put USC in front 10-7.
Oregon State was called for a pair of penalties on the ensuing drive and Everett Hayes' 46-yard field goal attempt to tie it with 8:34 to go went right.
Oregon State benefited with good field position from USC's punt out of the end zone, and Griffin rushed 18 yards for a touchdown that gave the Beavers back the lead with 4:41 to go.
After Addison's touchdown catch, Oregon State's final drive ended with another USC interception.
“I’m probably more proud of this win then the previous three,” Trojans coach Lincoln Riley said. "We had to find different ways to win tonight. We got in a slugfest."
USC: The Trojans had scored on their opening drive in the previous three games this season. They had not trailed until Saturday. ... USC's second-half kickoff went out of bounds.
Oregon State: The Beavers were without tight end Luke Musgrave, who led the team with 169 yards receiving through the first two games, because of an unspecified injury. There is no timetable for his return. ... Oregon State went to the Coliseum last year and beat the Trojans 45-27. It was the Beavers’ first victory at USC in more than 60 years.
With the four interceptions, USC now has 11 on the season.
“Each game is its own thing. The previous game doesn’t know if you got turnovers or not. It’s just about the next opportunity," Riley said. "Right now we’re taking advantage of it. We’re playing really hard. We’re active. We’re getting balls tipped up in the air. We’re finishing some of those plays.”
USC: The Trojans host Arizona State next Saturday night.
Oregon State: The Beavers visit No. 13 Utah next Saturday.