EUGENE, Ore. (AP) Justin Herbert threw for 309 yards and three touchdowns and No. 20 Oregon beat San Jose State 35-22 on Saturday in the Ducks' final nonconference tuneup before opening the Pac-12 season with Stanford next week.

Freshman Cyrus Habibi-Likio scored on both of his carries and Johnny Johnson III caught a pair of touchdown passes to help Oregon win its 23rd straight nonconference game at Autzen Stadium.

The Ducks previously defeated Bowling Green and Portland State, moving up three spots in the rankings this week. They were 41-point favorites against San Jose State, but the Spartans showed surprising tenacity.

San Jose (0-3) went into the game ranked 113th among FBS teams (out of 129) in total offense with an average of 315 yards game, and 125th in total defense, allowing 566.6 yards a game. The Spartans sputtered in last weekend's 31-0 loss to the Cougars, managing just 109 total yards.

But they fared far better against the Ducks. Quarterback Josh Love completed 15 of 31 passes for 238 yards and a score, while Josh Oliver had six catches for 41 yards and a touchdown . They finished with 296 yards of total offense.

Oregon scored on its first series of the game when Habibi-Likio ran for a 3-yard touchdown. On the Ducks' next series, Herbert hit Jacob Breeland with a 66-yard TD pass.

Bryce Crawford kicked field goals from 31 and 28 yards out to get the Spartans in the game. But Herbert answered with a 39-yard scoring pass to Johnny Johnson III to make it 21-6.

The Ducks nearly scored again before the end of the first half but Herbert's pass into the end zone was tipped and intercepted by San Jose cornerback Dakari Monroe.

Habibi-Likio scored on his second carry of the game, a 3-yarder to make it 28-6 for the Ducks, but Love found Oliver in the end zone with a 7-yard pass - the conversion failed - to narrow the lead.

Herbert opened the final quarter with a 22-yard scoring pass to Johnson to put the Ducks up 35-12. But Crawford kicked a 25-yard field goal and Malik Roberson added a 1-yard TD run for the Spartans to close out scoring with 4:02 left.

Herbert completed 16 of 34 passes but threw two interceptions. He has thrown 12 touchdown passes so far this season.

The two teams last met in 1998 with No. 22 Oregon winning 58-3. Current Oregon offensive coordinator Marcus Arroyo started that game as a freshman quarterback for San Jose.

THE TAKEAWAY

San Jose State: Monroe has five career interceptions. In addition to the interception, he had a pair of pass breakups in the first half. ... Oliver had 137 total receiving yards through the team's first two games, with nine of his catches resulting in a first down.

Oregon: Habibi-Likio has four touchdowns on just five carries this season. ... Freshman safety Jevon Holland had his first career interception in the first quarter. ... Tony Brooks-James' long fourth-quarter kickoff return was called back on a holding call.

BACKUP OUT: Oregon backup quarterback Braxton Burmeister was on the sidelines Saturday on crutches with an unspecified injury. Freshman Tyler Slough, who made a brief appearance in Portland State last week, was next on the depth chart. Slough played on the Ducks' final series against the Spartans.

UP NEXT:

San Jose State: The Spartans are off next week before hosting Hawaii in a Mountain West Conference game Sept. 29.

Oregon: The Ducks open the Pac-12 season at home next Saturday against No. 9 Stanford.

---

More AP college football: https://apnews.com/tag/Collegefootball and https://twitter.com/AP-Top25

Copyright 2018 by AP. Any commercial use or distribution without the express written consent of AP is strictly prohibited.