Tony Jones Jr. rushed for 176 yards and Jonathan Doerer kicked three long field goals as No. 9 Notre Dame held off visiting USC 30-27 Saturday night.

The Fighting Irish (5-1), who rushed for a season-high 308 yards, clinched their third straight victory over the Trojans (3-3) on Ian Book’s 8-yard run with 3:33 left.

“An exciting football game,” Notre Dame coach Brian Kelly said. “Our guys prepared so well for this game. (USC was) coming off a bye week and we knew there were some things we’d have to adjust to. We took USC’s best shot.”

Book’s touchdown ended a 14-play, 75-yard drive that took 6:54 off the clock after USC had drawn within 23-20.

The Trojans’ Markese Stepp, who ran for 82 yards, scored from the 2 with 1:04 left to make it 30-27. But Notre Dame’s Brock Wright recovered the onside kick, and the Irish ran out the clock.

Jones’ fourth 100-yard game of the season came on 25 carries. He had 12 runs for 120 yards in the first half.

The Irish led 17-3 at the half after Book threw a 10-yard TD pass to Cole Kmet, wide receiver Braden Lenzy ran 51 yards on a reverse and Doerer kicked a 43-yard field goal. The half ended with the teams shoving each other before they headed to their locker rooms.

Doerer added field goals of 52 and 43 yards in the second half to keep the Irish ahead.

USC freshman Kedon Slovis completed 24 of 35 passes for 255 yards in his first game back from a concussion three weeks ago.

“Notre Dame is a good football team and we are, too,” USC coach Clay Helton said. “I can’t wait to watch the next six games.”

#15 Utah 52, Oregon State 7: Zack Moss rushed for 121 yards and two touchdowns, including a 91-yard scoring run in the opening quarter, and Tyler Huntley threw for 247 yards and two scores as the Utes (5-1, 2-1 Pac-12) beat the host Beavers (2-4, 1-2).

Moss, who was returning from a shoulder injury, sat out the second half. He is just 55 yards away from passing Eddie Johnson (1984-88) as Utah’s leading career rusher.

Oregon State quarterback Jake Luton, chosen Pac-12 Player of the Week after accounting for six touchdowns (five passing, one running) in a win over UCLA last weekend, was limited to 131 yards passing and threw his first interception this season.

The Utes, ranked 14th in the nation among FBS teams for total defense going into the game, also held Oregon State to just 48 rushing yards.

#18 Arizona State 38, Washington State 34: Freshman quarterback Jayden Daniels scored on a 17-yard scramble with 34 seconds left and threw three touchdown passes to Brandon Aiyuk as the host Sun Devils (5-1, 2-1 Pac-12) beat the Cougars (3-3, 0-3).

Anthony Gordon threw for 466 yards and three touchdowns, but Washington State was again let down by its defense.

The Cougars allowed 498 yards and folded when they needed to stiffen the most, allowing Daniels to hit 6 of 8 passes for 52 yards on the winning drive.

“I thought it was a team we let slip through our fingers too many times,” Washington State coach Mike Leach said. “We need to trust each other better.”

Late Friday

#13 Oregon 45, Colorado 3: Justin Herbert threw for 261 yards and two touchdowns and Cyrus Habibi-Likio rushed for three more scores as the host Ducks (5-1, 3-0) beat the Buffaloes (3-3, 1-2).

Jaylon Redd rushed for a touchdown and caught a pass for another score for Oregon, which is 3-0 to open Pac-12 play for the first time since 2013.