TEMPE, Ariz. (AP) -- Oregon didn't look quite ready for prime time, and the Arizona State Sun Devils have a big win they sorely needed.
Freshman Brandon Ruiz kicked a 41-yard field goal with 2:33 to play and Arizona State held on to upset No. 24 Oregon 37-35 on Saturday night in the Pac-12 opener for both teams.
''This one really felt good just because you go after two losses and your mindset is a little like 'We just need to get one, get this rolling,''' quarterback Manny Wilkins said. ''That's why I think this one felt really good because, just to see how well we practiced throughout the week, guys were out there at practice taking every rep with 100 percent effort and it showed here on Saturday night.''
The win ended the Sun Devils' 10-game losing streak to the Ducks and more than eased the pain that came with nonconference losses to San Diego State and Texas Tech.
''We play really well together,'' Wilkins said, ''and when we're clicking, it looks beautiful. It's a thing of art.''
Wilkins completed 24 of 39 passes for 347 yards and a touchdown and ran for two more scores as Arizona State beat the Ducks for the first time since 2004. K'Neal Harry caught seven passes for a career-best 170 yards and a score.
''That one felt pretty good,'' Sun Devils coach Todd Graham said. ''(Oregon is) the No. 1 scoring team in the country and that was a very impressive performance.''
The Ducks' Justin Herbert completed 19 of 35 for 281 yards and three scores.
It was the first loss at Oregon for new coach Willie Taggart.
''It was a lack of execution, by everybody,'' he said. ''Coaches, myself included, we didn't do a good job. In the first half, hey took it to us offensively, instead of us taking it to them.''
Oregon (3-1), a 13-point favorite going into the game, trailed throughout by as many as 17 points until Herbert threw 51 yards to Jacob Breeland and scored on a 5-yard quarterback draw to put the Ducks up 35-34 with 6:41 to play.
But the Sun Devils responded.
Arizona State (2-2) converted a crucial third-and-6 play on a 10-yard pass from Wilkins to Jalen Harvey to get Arizona State into range for the winning field goal.
The Ducks drove past midfield but, on fourth down, Herbert's scramble fell just shy of a first down.
Oregon had one more chance after forcing Arizona State to punt with 50 seconds to play but never got out of its own territory.
Herbert threw touchdown passes of 20 yards to Johnny Johnson III and 22 to Tony Brooks-James to cut the Arizona State lead to 31-28 with 4:33 still left in the third quarter.
The Sun Devils scored touchdowns on their first two possessions and had a comfortable 17-7 lead nearing the end of the first half.
But with 37 seconds to play, Ryan Newsome muffed an Oregon punt and the Ducks' La'Mar Winston jumped on the ball at the Arizona State 12-yard line. Royce Freeman swept around left end for a touchdown, his school-record 54th, on the next play and the Ducks were down just 17-14 at halftime.
The teams traded touchdowns to start before the Sun Devils grinded out 75 yards in 15 plays to go up 14-7 on Wilkins' 3-yard touchdown pass to Harry.
Arizona State surprised the Ducks with an onside kick and drove downfield for Ruiz's 29-yard field goal that boosted the Sun Devils' lead to 17-7.
Arizona State scored touchdowns on its first two possessions of the second half.
Oregon was 1 for 11 on third downs and 0 for 2 on fourth.
''The penalties, the dropped balls,'' Taggart said. ''It's hard to get in a rhythm, it's hard to go fast.''
Oregon: The Ducks were on their way back under Taggart but suffered a setback in the desert. It will be interesting to see how they respond.
Arizona State: A big win over a ranked team will ease the pressure on Graham, who's coming off two straight losing seasons.
Oregon: The Ducks play their conference home opener next Saturday night against California.
Arizona State: The Sun Devils hit the road for their first Pac-12 game away from home Saturday at Stanford.