SALT LAKE CITY — Colorado's final game of the season followed the same, familiar blueprint as much of the year — close, but no cigar.
The Buffaloes were, once again, competitive, but still fell 20-14 to Utah on Saturday.
The season ends without a bowl game for the eighth straight season. Colorado has five total conference wins in five seasons in the Pac-12 and hasn't had an overall winning record since 2005.
"It's just been the story of the season," Colorado receiver Nelson Spruce said. "Every game has had a recurring theme of not being able to finish. A lot of it was for the same reasons every game. With that being said, the progress is definitely there this year."
The win Saturday gave the Utes (9-3, 6-3) their best Pac-12 finish since joining the league in 2011, but there was still a feeling of emptiness after a 6-0 start and a No. 3 ranking just over a month ago. The six wins will tie for the most in the Pac-12 South, but Utah lost tiebreakers to both USC and UCLA.
"The first six weeks the emotions were very good, you know everyone was excited, then we had a setback against USC," Utah coach Kyle Whittingham said. "The biggest disappointment was not being able to get one of those last two prior to this game which would've really given us the outright championship and the chance to go to the Pac-12 championship game next week, so that was tough to take.
"We've got no one to blame but ourselves. We own that."
Utah leaned on the run game despite leading rusher Devontae Booker being out for the season with a knee injury. Joe Williams ran for 187 yards and a touchdown and flat-out carried the offense. Quarterback Travis Wilson threw for 108 yards, one touchdown and one interception.
Colorado quarterback Cade Apsay threw for 145 yards, one touchdown and two interceptions before leaving the game late in the second quarter with an injury. Jordan Gehrke threw for 113 yards, one touchdown and one interception in his absence. Nelson Spruce finished with 111 receiving yards and a touchdown.
The two teams combined for seven turnovers.
"The seniors have set a good legacy for us," Colorado coach Mike MacIntyre said. "They've hung tough here and pushed to provide good leadership for our team.
"You always want to end on the best note you can and we didn't."
Utah used a 13-play, 68-yard drive finished by a five-yard Williams touchdown to take a 17-7 lead on the first possession of the second half. The 10-point lead was enough to hold off a Colorado offense that managed just 307 yards.
The Utes led 10-7 at halftime in a poorly played 30 minutes that saw each team waste numerous opportunities.
Colorado drove inside the Utah 10-yard line on its first two possessions, but came away without any points after a blocked field goal by Kylie Fitts and an interception thrown by Apsay. Marcus Williams picked off the tipped pass. The Buffaloes got the ball right back thanks to a Williams fumble, but they gave it back to Utah on a blown center-quarterback exchange on fourth-and-1.
Colorado's lone seven points of the first half came after Boobie Hobbs fumbled a punt and the Buffaloes recovered on the Utah 33. Apsay threw a 28-yard touchdown to Spruce — his school-record 23rd career touchdown reception. Apsay threw another interception on their next possession.
Apsay made his second start of the year after Sefo Liufau was lost for the season after foot surgery to repair a Lisfranc injury.
Utah's first half wasn't much better. Wilson capped the Utes' opening possession with a 16-yard touchdown pass to Kenneth Scott to finish a 13-play drive. But that was followed by seven drives that included three turnovers and three punts. An Andy Phillips 37-yard field goal gave Utah a 10-0 lead.