BOULDER, Colo. — Deion Sanders watched his Colorado offense put up 49 points on the top scoring defense in the Big 12 on Saturday, but he isn’t satisfied. The coach expects dominance in all three phases of the game.

The Buffaloes outplayed Utah in two out of three phases and eventually got rolling on offense in a 49-24 victory, extending their win streak to four games and ensuring they’ll remain in the Big 12 championship race the rest of the way. Afterward, Sanders delivered a critique that sounded a little more like a warning to others.

“We haven’t even put it all together yet,” Sanders said. “Like, we haven’t even played our best game. That should be, in itself, scary. Like, man, when I said we comin’, we still comin’. We never stopped comin’. We are comin’. And we ain’t nearly there yet.”

Colorado (8-2, 6-1) got a strong start from its defense, which held the Utes (4-6, 1-6) to 83 yards on 33 plays in the first half, and a 76-yard punt return touchdown from receiver LaJohntay Wester to help make up for a bumpy start on offense. Quarterback Shedeur Sanders was intercepted on his first pass and later fumbled a snap for another turnover.

It may not have been the Buffaloes’ finest performance of the season, but it was a 25-point win over the preseason Big 12 front-runner, snapping a seven-game losing streak against a program whose last win at Folsom Field came by a score of 63-21.

“I think that speaks a lot about the program and where we are,” Deion Sanders said. “We’ve got to tighten some things up and get some things together, but you see we’re trending in the right direction.

“We started off rough. That wasn’t indicative to who Shedeur is, and I thought he was kind of OK all game long. Then I look at the stats and he’s 30-for-41 for 340 [yards] and three [touchdowns]. Like, c’mon man. I guess I’m just a hard dad to please at times, as well as a hard head coach.”

Sanders praised Utah’s defense and the problems it presented throughout the contest and said he was thankful for the challenge. It took complementary football to overcome the two first-half turnovers, with Colorado’s defense holding Utah to field goals after both takeaways. The Buffaloes didn’t surrender a touchdown until midway through the third quarter.

“Those type of things can’t happen,” Shedeur Sanders said, “and I’m going to have a talk with the whole offense and apologize for my performance out there at the very beginning, because I can’t put the team in that type of situation. I’m thankful for the defense. I may have to take them out to dinner this week for saving me and saving the team.”

Sanders responded after the fumble by guiding an 85-yard touchdown drive that featured another highlight-reel moment for Travis Hunter. Sanders threw deep to Colorado’s two-way star on a fourth-and-8, and Hunter made a leaping grab over two Utah defenders for a 25-yard gain. Sanders hit Will Sheppard for an 8-yard score on his next throw to extend Colorado’s lead to 21-6.

Hunter added to his Heisman Trophy résumé Saturday with 55 receiving yards on five catches, a 5-yard rushing touchdown on a reverse and his third interception of the season while playing 132 snaps.

When asked if he had a message for undecided Heisman voters, Deion Sanders did not hold back.

“If they can’t see, they can’t see,” Sanders said. “It is what it is. I mean, Travis is who he is. It’s supposed to go to the best college football player. I think that’s been a wrap since, what, Week 2? So we ain’t petitioning for nobody. We ain’t doing that. We’ve got a wonderful display of cameras here and I think we’re on national television every week. If they can’t see it, there’s a problem.

“Don’t allow their hatred for me to interfere with our kids’ success. They gotta stop that. Y’all gotta stop. Some of y’all are like that. Y’all gotta stop that, man. Give the kids what they deserve, man. I had my turn. I played 14 years. You had 14 years to hate me. Now let it go.”

Hunter was the Heisman front-runner in ESPN BET odds entering Week 12 at +125, ahead of Oregon quarterback Dillon Gabriel, Boise State running back Ashton Jeanty and Miami quarterback Cam Ward.

Colorado’s defense was able to constantly pressure freshman quarterback Isaac Wilson, forcing four sacks and three interceptions, and Utah finished with a mere 31 rushing yards, their fewest in a game since 2011. The preseason No. 12 Utes were considered the Big 12 favorites entering their first season in the conference but are now in danger of their first losing campaign since 2013.

“I’m in the twilight zone,” Utah coach Kyle Whittingham said. “… It’s the most difficult year of my coaching career, hands down, not even close.”

Colorado continues to control its destiny in chasing a Big 12 championship game bid, as the lone team in the 16-member conference that has lost just one conference game entering Saturday. The Buffaloes’ four-game win streak since a 31-28 home loss to Kansas State on Oct. 12 is the longest of Sanders’ two-year tenure.

After a 4-8 debut season, he has this once struggling program right where he planned to be for Year 2. In a league known for dramatic games decided by one-score margins, Sanders isn’t just trying to survive and advance to Arlington, Texas. He says he’s aiming for “flawless.”

“We expect to be here,” Sanders said. “A lot of y’all didn’t expect us to be here, and don’t think we don’t know that. But we expected to be where we are. Matter of fact, we expected to be a little better.”