AUSTIN, Texas -- First came the boos. Then came the chants of "Beat OU!"
Earl Thomas returned an interception 92 yards for a touchdown and Ben Wells recovered a blocked punt for another score to help the Longhorns (5-0, 2-0 Big 12) pull away in the second half.
Jordan Shipley added a punt return for a touchdown in the fourth quarter. He also caught a 39-yard touchdown pass in the first half and finished with 147 yards on 11 receptions.
"It was a tough game and a physical game and one we really needed going into next week," Texas coach Mack Brown said.
It wasn't exactly a confidence booster with the Sooners up next Saturday in Dallas.
Colorado (1-4, 0-1), which managed just 127 total yards, led 14-3 in the first half. The Buffaloes blocked a field goal attempt, forced two turnovers by Colt McCoy and held the Longhorns to 313 yards, their lowest output of the season and 200 yards below their average.
"When everybody talks about how bad Colorado is all week, it's really hard to go out there and take them serious," Brown said.
Colorado quarterback Cody Hawkins burned Texas twice early on play-action passes for touchdowns. The first to Patrick Devenny capped Colorado's first drive. The second to Riar Greer came in the second quarter after McCoy fumbled on the Longhorns 6.
After one Texas drive stalled, McCoy unsnapped his chin strap in frustration and stood at midfield with his hands on his hips.
"We were in a battle all night," Longhorns wide receiver Dan Buckner said.
But McCoy to Shipley can cure a lot of ills.
Shipley was wide open when he turned around Colorado cornerback Jalil Brown on a fake and McCoy hit him in stride for Texas' first touchdown with 46 seconds left in the half.
It didn't solve everything. Texas' first two drives of the second half ended without reaching midfield, prompting some boos from the crowd of 101,152.
Special teams and defense quickly turned the boos into cheers.
Goodwin, a freshman with world-class speed in the 100 meters, turned the game with a 12-yard burst when he slipped through a seam in the right side of Colorado's punt protection to get a clean block on the kick.
The ball spun backward toward the end zone and sat up neatly for Wells to scoop and score from the 3 for a 17-14 lead.
"We expect things like that on special teams," Shipley said. "Those plays are so important, especially in close games."
Colorado was still in the game when Jalil Brown intercepted a Shipley drop deep in Texas territory. But Hawkins threw behind his receiver, making it an easy pickoff for Thomas and the safety sprinted along the sideline for the score.
The 92-yard return tied for the second-longest in Texas history and was the longest for the Longhorns since 1936.
Hawkins, who was 6 of 18 passing for 68 yards with two interceptions, was pulled for sophomore Tyler Hansen on Colorado's next drive. After the game, Colorado coach Dan Hawkins, Cody's father, announced that Hansen is now the Buffaloes' starter.
"He's gotta make that throw," Dan Hawkins said of his son. "[Hansen] is such a trooper and we're just gonna go with him."
Shipley made it 31-14 with his punt return, weaving through the middle of the field for about 20 yards before breaking to his left to find a clear path to the touchdown.
By the time it was over, the Texas fans still in the stadium were chanting "Beat OU!"
McCoy wasn't ready to join in the fun just yet.
"We're going to enjoy this win," McCoy said.