STANFORD, Calif. (AP) Tight end Colby Parkinson and quarterback K.J. Costello have been working on their timing for over a year. It came to fruition Saturday.

Parkinson caught all four of K.J. Costello's touchdown passes and Stanford beat Oregon State 48-17 Saturday to become bowl eligible.

"We were getting the match-ups we wanted," Parkinson said. "That's what K.J. and I have been working on. K.J. puts the ball where it needs to be. It's what we do in practice every day."

Bryce Love scored a touchdown and rushed for 90 yards, his most since gaining 136 against Southern California on Sept. 8. Cameron Scarlett also scored for the Cardinal (6-4, 4-3 Pac-12) with a career-long run of 41 yards. Dorian Maddox scored on a 1-yard run, his first career touchdown.

Jake Luton passed for 205 yards and touchdowns of 63 yards to Trevon Bradford and 7 yards to Noah Togiai. Jermar Jefferson rushed for 109 yards for Oregon State (2-8, 1-6). Bradford finished with five receptions for 120 yards.

Last year the teams combined for 486 total yards in Stanford's 15-14 win. The teams had 632 by halftime on Saturday.

Costello threw for 342 yards and touchdown passes of 28, 9, 75 and 5 yards. He's thrown four touchdowns in three games this season, the most since Andrew Luck did in 2011. Parkinson finished with six catches and 166 yards.

"K.J. played extremely well," Stanford coach David Shaw said. "Him and Colby have been working at timing. It was great to see those two connect."

Parkinson became integral to Stanford's offense after top receiver JJ Arcega-Whiteside suffered an injury in the first quarter of last week's loss at Washington.

"I was joking with him before the game that I'd catch a touchdown pass for him," Parkinson said.

Jordan Choukair kicked a 40-yard field goal for the Beavers on the final play of the first half.

Love, who did not play after a brief appearance in the third quarter, finished off a 5-play, 75-yard drive with a 28-yard run that brought comparisons from last year when he set a school rushing record and was the Heisman Trophy runner-up.

"He had some good plays. He's a good player," Oregon State coach Jonathan Smith said. "He's a tough kid. They're throwing the ball more than they have but they can still run the ball."

The Cardinal broke it open in the second quarter, scoring the first three touchdowns, all passes to Parkinson, and taking a 34-7 advantage before the Beavers closed within 34-17 by halftime.

AIR QUALITY

The game was played with an air quality index close to 150 through the night, on the low end of the `dangerous' level, due to smoke from the Camp Fire in Butte County. Smoke was visible throughout the contest. "It's been a rough week," Shaw said. "All our thoughts and prayers go to them. But I was happy to play the game at its proper time."

BIG PICTURE

Stanford became bowl eligible with two road games remaining at Cal and at UCLA. The Cardinal had higher expectations entering the season but at least continue their school record streak of 10 consecutive years in a bowl game. "It's a bar but a low bar," Shaw said. "We take pride in becoming bowl eligible but the thing is to win as many games as possible and they'll tell us what bowl game to go to."

Oregon State freshman Jermar Jefferson entered the game ranked sixth in country in rushing and continues to move up the Beavers' all-time single-season rushing list. He recorded his sixth career 100-yard rushing game, second only Jacquizz Rodgers (with seven) among Oregon State freshmen. Jefferson is the only freshman in the country with more than 800 yards.