Well, it certainly wasn’t pretty, but the Broncos managed to punctuate their season of growth and development with a 16-15 win over the Oakland (now Las Vegas) Raiders.

Without making the playoffs, it’s harder to imagine a sweeter end to the season than winning 4-of-5 games and sending the Raiders off from Oakland with a last-second defeat that helped knock them from playoff contention.

Here are the biggest stars and disappointments from Sunday’s game.

4 Up

Redzone Defense

If it weren’t for the Broncos remarkable red zone defense, this game could have ended much differently.

On each of the Raiders’ first three drives they entered the end zone, yet only came away with three points thanks to a missed field goal courtesy of Daniel Carlson and an impressive fourth-down stop.

Those plays were the difference for the Broncos on Sunday, and they finished the game allowing just nine points on five red zone possessions.

Trey Marshall

Trey Marshall had the play of the day for the Broncos in their win over the Raiders.

With Oakland in control of all of the momentum, attempting to drive down the field at the end of the first half, Derek Carr found Marcell Ateman for 20 yards, only for Marshall to rock the receiver and force the fumble.

The Broncos went on a 13-0 run and scored their lone touchdown of the game following the turnover.

Roster Bubble Receivers

For the second straight season, DaeSean Hamilton has come on strong down the stretch. Last season Hamilton finished the year the same way, catching 25 of his 30 receptions in the final four weeks.

This season, Hamilton has caught 15 of his 28 receptions in the final four weeks.

The flashes he’s shown should be promising for the Broncos, though unlike last season, Hamilton better carry that momentum into 2020 to save a roster spot.

Andrew Beck, Denver’s tight end/fullback hybrid, is also battling for a roster spot but should make the final squad based on what he’s shown down the stretch as a bench tight end and Andy Janovich’s backup.

Shelby Harris

Shelby Harris was the secret weapon of Denver’s pass defense this season.

He led all defensive linemen in passes defended and recorded two more swats, including the game-winning bat down on the Raiders’ last-ditch two-point conversion.

This could be Harris’ last game in orange and blue, but if the Broncos were smart, they’d make re-signing him the second priority behind bringing Justin Simmons back.

2 Down

Noah Fant

After coming on strong through the middle of the season, rookie tight end Noah Fant has ended the season with a whimper.

Over the final three weeks of the season, Fant made only five receptions for 70 yards and no touchdowns and was called for three holding penalties, two of which occurred against the Raiders this week. Plus, on his lone reception of the day, he ran backwards four yards to take away a first down.

Hopefully, Fant becomes the tight end we saw in the middle of the season and not the dead weight he was to open and close the season.

Denver’s run game

Phillip Lindsay becoming the first undrafted player to ever open their career with back-to-back 1,000-yard seasons is incredible, but the rushing performance for the Broncos overall certainly was not.

At the end of the first half, the Broncos had gained just eight yards on their nine carries, not including Drew Lock‘s two scrambles that gained 17 yards.

In fact, Lock was the only Broncos player who averaged more than three yards per carry this game, as Lindsay averaged 2.9 and Freeman averaged minus two and lost a fumble.