KANSAS CITY, Mo. >> Colorado’s march to the Big 12 title game took a hit on Saturday.

Red-hot Kansas dominated on offense all day, upsetting the 16th-ranked Buffaloes, 37-21, at Arrowhead Stadium.

CU (8-3, 6-2 Big 12) came into the day tied for first in the conference and controlling its own path to the Big 12 title game. The Buffs can still get there but will need a bit of help.

Kansas (5-6, 4-5) became the first team in FBS history with a losing record to beat three consecutive top 25 teams. The Jayhawks upset Iowa State and BYU in previous weeks before having their way with the Buffs.

The Buffs’ Shedeur Sanders threw three touchdown passes, and Travis Hunter caught eight passes for 125 yards and two touchdowns, but it wasn’t nearly enough against the Jayhawks.

KU running back Devin Neal rushed for 207 yards and three touchdowns and added 80 yards and a touchdown as a receiver. He helped to spot Kansas a 17-0 lead and it never looked back. KU rushed for over 300 yards and scored on its first seven possessions. The only possession in which the Jayhawks didn’t was their last one, when they drove to the CU 16-yard line and then took a knee to run out the clock.

With his three touchdown passes, Sanders set a single-season CU record, with 30. He also threw a TD in his 47th consecutive game, setting an NCAA Division I record.

A recap of the Buffs’ loss against the Jayhawks:

First quarter

Kansas received the opening kickoff and didn’t waste much time. On the sixth play, Jalon Daniels hit Devin Neal on a short pass and Neal cruised from there for a 51-yard touchdown. The Buffs went three-and-out on their first possession and then KU went to work again. This time, the Jayhawks marched 61 yards in 13 plays to get a 40-yard field goal from Tabor Allen. Score: Kansas 10, Colorado 0.

Second quarter

CU closed the first quarter with the start of a solid drive, but that possession stalled when it was stuffed on back-to-back runs, turning the ball over on downs. Kansas took advantage, marching down the field again and scoring on a 9-yard TD by Neal to make it 17-0. CU finally responded on its next possession, as Travis Hunter caught a screen pass from Shedeur Sanders and burst through the defense for a 51-yard touchdown. CU held the Jayhawks to a 23-yard field goal by Allen to make it 20-7, and then scored again. Sanders connected with Drelon Miller for a 19-yard TD to pull the Buffs within a score. KU, however, got another Allen field goal, this one from 25 yards, just before the half. Score: Kansas 23, Colorado 14.

Third quarter

The quarter got off to a nice start for the Buffs, as Isaiah Hardge had a 43-yard kickoff return. That was followed by a six-play, 51-yard scoring drive, capped by Sanders hitting Hunter for a 12-yard touchdown pass, pulling the Buffs within 23-21. CU just couldn’t stop the Jayhawks, though, who responded with a 10-play, 80-yard drive, finished off by Neal with a 1-yard touchdown run. CU went three-and-out on its next possession and punted the ball back to KU with 4:54 to play in the quarter. The Jayhawks held the ball the rest of the quarter on a possession that continued into the fourth. Score: Kansas 30, Colorado 21.

Fourth quarter

KU capped that drive that began in the third with Neal’s fourth touchdown of the day, a 2-yard run. That 8-minute, 7-second possession gave the Jayhawks a 37-21 lead with 11:47 to play. CU drove down to the Kansas 14-yard line, but stalled and turned the ball over on downs with 6:22 to go. KU ran out the clock from there. Final score: Kansas 37, Colorado 21.