TUCSON, Ariz. (AP) Ryan Katz threw for 393 yards and two touchdowns, sneaked across for another score and Oregon State held on to upset No. 9 Arizona 29-27 on Saturday night.
The sophomore from Santa Monica, Calif., completed 30 of 42 against an Arizona defense that had been ranked No. 2 nationally, giving up 230.8 yards per game.
The Wildcats (4-1, 1-1 Pac-10), in the top 10 for the first time since the 1999 preseason rankings, never led in a loss that dampened their hopes for the school's first trip to the Rose Bowl. The Wildcats' Nick Foles completed 35 of 46 for 440 yards and three touchdowns.
Oregon State (3-2, 2-0) lost standout receiver James Rodgers to a knee injury in the second quarter. He was in street clothes on crutches in the second half after seven catches for 102 yards, including a 33-yarder for the Beavers' first score.
Foles' 12-yard touchdown pass to Keola Antolin cut the lead to 29-27 with 1:52 to play but Oregon State recovered the subsequent onside kick attempt. Arizona got the ball on its own 20 with two seconds left and tried to use a short pass and a series of laterals to score. But Antolin was stopped at midfield to finish Oregon State's fifth consecutive victory in Tucson.
The teams combined for 1,027 yards in a game that featured five touchdown plays of 33 yards or longer.
Rodgers' younger brother, Jacquizz, rushed for 92 yards in 25 carries and caught three passes for 41 yards. His 1-yard touchdown run with 5:46 to play put the Beavers up 29-20.
James Rodgers, a senior who had missed the previous week's game with a concussion suffered in a loss at Boise State, made a fingertip catch of Katz's deep pass for what would have been a 56-yard touchdown with 5:07 left in the half. But he was hit by Arizona's Adam Hall as he crossed into the end zone, then went down in pain. He was helped off the field with no weight on his left knee. The score was called back by an illegal receiver downfield penalty.
Foles connected on touchdown passes of 45, 33 and 12 yards but Katz matched him all the way. The Oregon State coaching staff had held Katz down as he opened his first season as a starter but have unleashed him in the first two Pac-10 games. He threw for 260 yards in the Beavers' 31-28 victory over Arizona State a week ago.
The Beavers' Markus Wheaton caught seven for 113 yards. Katz, running toward the right sidelines, threw 48-yard touchdown pass to Wheaton that put the Beavers up 17-7 with 9:21 left in the first half. Arizona's Juron Criner had 12 catches for a career-high 179 yards.
The Wildcats took the second-half kickoff and went 66 yards in just two minutes, Keola Antolin scoring on a 33-yard run. The point after attempt was blocked and it was 17-13. Oregon State responded with an 11-play, 65-yard scoring drive, Katz sneaking over from the 1. But Justin Kahut's extra point try was no good, giving the Beavers a 23-13 lead. He also missed the kick after the last Arizona touchdown.
Nic Grigsby took a swing pass from Foles and weaved through traffic 41 yards for a touchdown the cut Oregon State's lead to 23-20 with 3:20 still left in the third quarter.
The Beavers, who historically start a season slow then come on strong, responded with a 10-play, 80-yard drive, culminating with Jacquizz Rodgers' touchdown run.
Both quarterbacks were intercepted in the end zone. When Joseph Perkins picked off Katz's pass with 2:28 left in the half, it was Oregon State's first turnover of the season.
The Wildcats moved from their 2-yard line to the Oregon State 20, with Foles throwing 37 yards to Criner on third-and-17 to keep the drive alive, but the snap was high and Alex Zendejas' 37-yard field goal as the half ended was wide right.