STANFORD, Calif. — There weren’t a lot of points scored in general and certainly not many style points.

But Mario Cristobal's team morphed into the Bay Area Bruisers again.

No. 16 Oregon, which ended Cristobal’s first season as coach with a 7-6 win over Michigan State down the road at the Redbox Bowl, opened Pac-12 play with a plodding 21-6 victory over Stanford on a warm autumn Saturday evening in front of a sparse crowd of 39,249 at Stanford Stadium.

The Ducks (3-1, 1-0) are flying high into their first bye week of the season after ending a three-game losing streak to the Cardinal (1-3, 0-2) and snapping a four-game losing skid in Pac-12 openers.

“When you go on the road, sometimes it's a little bit ugly, but you never want to apologize for winning on the road,” Cristobal said after Oregon’s first win in a Pac-12 opener since Marcus Mariota created some magic in Pullman, Wash., five years ago. “It's tough, especially in conference.”

Andy Avalos’ defense has not allowed a first-half touchdown this season and has not given up a touchdown since Auburn’s game-winning score with nine seconds left in the opener.

The last time Oregon held three consecutive opponents out of the end zone? That would be in 1935 when Prink Collision was the Ducks’ coach and president Franklin D. Roosevelt was dealing with the Great Depression.

Over the last three games, Oregon’s defense has scored two touchdowns while allowing only 15 points on five field goals.

“They're pretty stubborn,” Justin Herbert said. “They're playing great defense and it makes our job so much easier. And they're so well coached and they're flying around. They've got great leadership and I’ve been really pleased with their performance.”

Herbert did not play in the 49-7 loss here in 2017 under Willie Taggart, which was the most lopsided game in the history of the series, which dates back to 1900.

The senior quarterback was sacked four times but still finished 19-for-24 passing for 259 yards with three touchdowns and no interceptions.

For the first time in Herbert’s decorated career, Oregon celebrated a win over Stanford.

“We kind of struggled on the road the past couple of years,” Herbert noted. “This was a great opportunity for us to make our mark.”

Herbert connected with his favorite security blanket, tight end Jacob Breeland, for two scores, including a 24-yard dagger with 10 minutes, 40 seconds left.

Over the last three games, Breeland has 14 receptions for 239 yards and five touchdowns.

“It means a lot,” Breeland said of Herbert leaning on him in the passing game with so many injured receivers. “I put it on myself that I need to prove to him that he can trust me.”

The Ducks punted on their first two drives of the second half after a sack and then a hurry of Herbert knocked the visitors out of rhythm.

Safety Jevon Holland’s interception of K.J. Costello set up the first score of the second half as Oregon went ahead 21-3.

“The phrase of the day for me right now is error,” Stanford coach David Shaw said. “Too many errors against good football teams makes it too hard to win.”

Stanford answered with a promising drive but had to settle for a 38-yard field goal by Jet Toner after a sack by La’Mar Winston in the red zone.

True freshman Camden Lewis missed a 27-yard field goal try with 5:35 remaining after a poor snap.

Costello was 16-for-30 passing for 120 yards. Portland export Cam Scarlett led Stanford with 97 yards rushing on 19 carries (5.1 per attempt).

Stanford was coming off back-to-back defeats to USC and Central Florida. Shaw had been 5-0 in rebounding from two-game losing streaks until Saturday.

“We weren’t going to allow them to come in and bully us,” cornerback Thomas Graham said after leading Oregon with a career-high nine tackles. “Each game we want to come in and dominate a team in every way possible.”

Cristobal, who opened himself up to criticism for his clock management after the Ducks coughed up a 24-7 lead in last year’s 38-31 overtime loss to Stanford at Autzen Stadium, was content to bleed the final 73 seconds off the clock at the end of the second quarter.

Oregon briefly celebrated a fumble return for a touchdown by inside linebacker Sampson Niu, which would have made the score 20-3, but the replay review showed Costello’s knee was down before he lost possession of the ball.

Cristobal opted not to call a timeout before Stanford’s punt, which was forced by Gus Cumberlander’s sack.

The Ducks took possession at their own 6-yard line, but trotted to the locker room, with a 14-3 lead and all three timeouts on the scoreboard after picking up a first down.

Herbert was 10-for-12 passing for 155 yards and two touchdowns in the first half.

CJ Verdell, whose fumble in the final minute of regulation opened up the door for Stanford to complete its stunning comeback in 2018, finished with 82 yards on 24 carries (3.4 yards per).

Overall, the running game remained inconsistent, especially on first down.

“If I could guarantee 80 points by throwing the ball, I would, and vice versa (running the ball),” Cristobal said. “We're just trying to move the ball, score points.”

Wide receiver Bryan Addison made a tackler miss en route to a 10-yard reception on third-and-9, and Travis Dye took a screen pass for 24 yards to move the chains on third-and-11 after Stanford stuffed the run on early downs.

The key drive ended with a beautiful back-shoulder throw by Herbert for a 16-yard touchdown to Breeland with 5:58 remaining in the second quarter.

Oregon led 7-3 at the end of the first quarter after Herbert connected with Johnny Johnson for a 19-yard completion and Jaylon Redd for a 36-yard touchdown for a two-play scoring drive.

Stanford opened the game with a 12-play, 61-yard drive that included a 13-yard completion by Costello to Osiris St. Brown on third-and-13, but the Cardinal had to settle for a 32-yard field goal by Toner.

On the previous third-and-7 at the Oregon 14-yard line, tight end Colby Parkinson, whose overtime touchdown completed Stanford’s comeback last season, was unable to get his feet in bounds while competing a catch in the end zone.

“Certainly this was a game we didn't finish last year,” Cristobal said. “That was heavy on their minds and they wanted to finish this one the right way, and they did.”

Follow Ryan Thorburn on Twitter @RGDuckFootball and email podcast mailbag questions to rthorburn@registerguard.com. For more Oregon sports coverage, visit DuckSports.com.