CORVALLIS — Ryan Nall was 10 years old the last time the Beavers beat the Ducks in the Civil War rivalry game.

So that made Saturday's 34-24 Oregon State victory all the more sweet for the sophomore tailback, who finished with 155 yards rushing and four touchdowns. The win snapped an eight-game losing streak for the Beavers in the long-running series.

"To be a part of our first win in such a long time, it's truly an amazing feeling," said Nall, an Oregon native. "I can't believe it."

Marcus McMaryion threw for 101 yards and another score as the Beavers finished their second season under coach Gary Andersen at 4-8 overall and 3-6 in the Pac-12.

Afterward, fans stormed the field at Reser Stadium and someone hoisted up Nall in victory.

"All of the sudden I'm in the air," he said. "I was just taking in that moment. It was amazing."

Oregon (4-8, 2-7) will end its disappointing season in the basement of the Pac-12 North, a dramatic fall for a team that just two seasons ago played in the first College Football Playoff championship game.

True freshman Justin Herbert, starting in his seventh game after taking over for graduate transfer Dakota Prukop, threw for 180 yards and a touchdown for the Ducks, who won't play in the postseason for the first time since 2004. Royce Freeman, who had seen mention as a preseason Heisman candidate, ran for 106 yards.

Afterward, Ducks coach Mark Helfrich was asked about his job security.

"Nobody's job is safe in college football," he said. "That's just the nature of the beast."

Oregon was boosted going into the Civil War by a 30-28 upset of then-No. 11 Utah last weekend, a win that momentarily silenced talk about Helfrich's future. The victory was sealed by Justin Herbert's touchdown pass to Darren Carrington with two seconds left.

The Beavers had momentum, too, coming off a 42-17 victory over Arizona at Reser Stadium last Saturday night.

Oregon State opened the scoring on Nall's 12-yard touchdown run. The Ducks answered on the next series with Tony Brooks-James' 3-yard TD run, then pulled ahead on receiver Jalen Brown's reverse pass to Carrington for a 33-yard touchdown.

The Beavers pulled even at 14 on McMaryion's 6-yard pass to Ricky Ortiz. McMaryion was pressed into duty as a starter for the Beavers earlier this season after both Darell Garretson and backup Conor Blount were injured.

The Ducks were efficient to start the second half, taking the lead on Herbert's 23-yard touchdown pass to Charles Nelson. Aidan Schneider's 46-yard field goal extended the lead for the Ducks.

But then the rain started coming down hard and the Beavers turned almost exclusively to running the ball, at one point running on 21 straight plays.

Nall scored on a 14-yard run to narrow it for the Beavers, then added a 6-yard touchdown with 9:40 left in the game. His fourth, a 2-yard dash, came with just under two minutes to go. Nall finished the season with 14 touchdowns despite being hampered by a foot injury.

It was his fourth game this season with 100 or more yards.

"Ryan is a workhorse," Andersen said. "You keep pounding the ball, good things are going to happen."

Herbert appeared to connect with Johnny Mundt in the end zone with 41 seconds to go, but Mundt dropped the ball, ending the Ducks' last chance.

"We knew we were going to win," Beavers safety Devin Chappell said.

"Definitely," added cornerback Treston Decoud.

It was the first sellout at Reser Stadium since the 2014 Civil War.

THE TAKEAWAY

Oregon: Freeman surpassed Napoleon Kaufman of Washington for ninth on the Pac-12 all-time rushing list, finishing his junior year with 4,146 yards. Freeman said after the game he had not decided whether he would leave Oregon for the NFL draft. It was Freeman's 22nd 100-yard rushing game.

Oregon State: With wins over Arizona and Oregon to close out the season, the Ducks won back-to-back Pac-12 games for the first time since 2013. ... It was Nall's first four-touchdown game. The last Oregon State player to score four touchdowns was Jacquizz Rodgers against Washington in 2010.

PLAYING FOR SETH: Receiver Seth Collins, who spent nearly two weeks in the hospital with an undisclosed illness before his release on Thanksgiving, was at the game. Collins fell ill on Nov. 13 following the Beavers' loss at UCLA. Some of his teammates started a Twitter hashtag, (hash)playfor22, in advance of the game.

PLAYERS WEIGH IN: Freeman said the Ducks player want to see Helfrich return, and they believe he can return the team to national prominence.

"He's done a lot of great things here," Freeman said. "A lot of positivity coming from him, and the players feed off that."

UP NEXT

Both teams are finished for the season.