The Trojans (6-10, 1-2 Pac-12) will have to keep searching for a road win. USC has dropped 14 consecutive games away from the Galen Center.
Eric Wise finished with 16 points for the Trojans, who haven't won on the road since Nov. 30, 2011, at UC Riverside.
The Buffaloes (11-4, 1-2) ran their home record to 7-0.
After a fast start by USC to open the game, the momentum began to shift late in the first half when Jio Fontan hobbled off the court. The injury was unrelated to the one that kept Fontan off the court last season, but it slowed him down. The Buffaloes turned a four-point lead into 11 by the time the senior guard checked back into the game.
The Trojans were without forward Ari Stewart, who was sent back to the hotel for a violation of team rules. USC Coach Kevin O'Neill did not specify the violation but said Stewart is still with the team.
Colorado's Andre Roberson, one of the top rebounders in the nation, didn't start for the first time in 49 games. Colorado Coach Tad Boyle declined to give a reason for the benching before the game but said he would address the situation later.
The junior forward anxiously sat in his seat for just over four minutes before being summoned into the game by Boyle. Roberson finished with 11 points and eight rebounds.
Colorado led by 15 points at halftime, but the Trojans closed the gap to 43-36 on a layup by J.T. Terrell early in the second half. Boyle began pacing as his players looked tentative on the court.
Finally seeing enough, Boyle called a timeout to settle down his squad. Colorado then went on a 14-7 run. The big play in the run was a three-point play by Booker with 8:41 remaining.
But the Trojans made one last run. Byron Wesley hit a deep three-pointer with about 15 seconds remaining to make it a six-point game. USC then stole a pass but couldn't capitalize.
USC turned the ball over a season-high 23 times.
Times staff writer Diane Pucin contributed to this report.