EUGENE, Ore. – Marcus Mariota threw a 12-yard touchdown pass to Josh Huff with 29 seconds left and No. 12 Oregon overcame a tenacious effort by Oregon State 36-35 Friday night in the 117th edition of the Civil War rivalry.

Mariota threw for 285 yards and three touchdowns – all to Huff, who had nine catches for a season-high 186 yards – and the Ducks (10-2, 7-2 Pac-12) sealed their sixth straight 10-win season. It was also the team’s sixth straight victory over the Beavers in the series.

With the Ducks holding a 24-23 lead, the Beavers scored on Sean Mannion’s 4-yard pass to Tyler Anderson to pull in front 29-24 early in the fourth quarter. But Oregon answered with Mariota’s fourth-and-11 pass to Huff for a 12-yard touchdown and the Ducks took a 30-29 lead with 7:56 left in the game.

Victor Bolden ran for a 25-yard touchdown to make it 35-30 for the Beavers with 1:38 remaining, but Oregon State’s defense couldn’t stop the Ducks on their final drive.

Mannion passed for 314 yards and two touchdowns for the Beavers (6-6, 4-5), who ended the season on a five-game losing streak, their worst since dropping six straight to conclude the 1997 season.

Freshman Thomas Tyner rushed for 141 yards and another score for Oregon, which finished undefeated at home for the first time since 2010.

The Ducks were coming off a deflating 42-16 loss at Arizona last weekend that ended their Pac-12 and national title hopes.

Oregon State are one of nine Pac-12 teams vying for a spot in the seven conference bowl games.

The Beavers were thwarted on the opening drive of the game when Mannion threw into the end zone on fourth-and-1 to Brandin Cooks and he was intercepted by Ifo Ekpre-Olomu.

Cooks was announced last week as one of three finalists for the 2013 Biletnikoff Award for the nation’s best college receiver. Cooks went into Friday night’s game as the nation’s top receiver with 141.8 yards a game.

Following the interception, the Ducks drove 80 yards on seven plays, capped by De’Anthony Thomas‘ 5-yard touchdown dash to give Oregon a 7-0 lead. Tyner added a 13-yard scoring run before the first quarter was over.

The Ducks were without Byron Marshall, who injured his ankle in the loss to Arizona last week.

Storm Woods scored on a 2-yard run for the Beavers to make it 14-7. Trevor Romaine added an 18-yard field goal with 2:33 left in the first half. The Beavers got close again before the break, but Mannion’s pass to Cooks was fumbled into the end zone for a touchback, and the Beavers came away with nothing.

Rashaad Reynolds intercepted Mariota on Oregon’s ensuing drive and the Beavers went on to score on Mannion’s 6-yard pass to Terron Ward to make it 17-17 at halftime.

Mariota had not thrown an interception this season until he had two in the loss to the Wildcats. He had two more interceptions in the first half against the Beavers.

Oregon’s sophomore quarterback continued to wear a brace on his left knee. It is believed that he injured his knee during the Ducks’ victory over UCLA on Oct. 26 and he’s worn the brace since.

Oregon State pulled in front 20-17 on Romaine’s 47-yard field goal to open the second half.

But Oregon woke up, and on the next drive Mariota took off on a 21-yard carry despite the brace, before finding Josh Huff with a 28-yard touchdown pass to retake the lead.

Terron Ward slipped on the turf on fourth-and-1 on the Oregon 5 and the Beavers missed a key opportunity to go back ahead. But they closed to 24-23 early in the fourth quarter on Romaine’s 37-yard field goal.

Matt Wogan missed a 43-yard field goal for the Ducks with 12:49 to go.