The Buffaloes (10-13, 2-7 Big 12) led by as many as 14 points early in the second half and then withstood a late Oklahoma charge, sending the Sooners to their third straight loss.
Hall played all 40 minutes for the sixth time this season. He also had three assists and three steals.
The Sooners (15-8, 3-5) were led in scoring by freshman Blake Griffin with 25 points, two points shy of tying his career high set against Kansas State on Jan. 12. He also had five assists and five rebounds.
Colorado put two defenders on Blake Griffin to try to slow him down, but the ploy didn't work. Griffin got free anyway, helping the Sooners dominate inside. Oklahoma outscored Colorado 36-18 in the paint. The Buffaloes were outrebounded on the offensive glass 17-3 by the Sooners.
Roby scored 11 of his 19 points in the second half. He has now scored in double figures in 15 straight games. Roby also moved to within 28 points of passing Shaun Vandiver for third place on the Buffaloes' all-time scoring list.
Colorado has now beaten the Sooners three straight times at Coors Events Center. However, Oklahoma still has won 43 of the last 49 meetings, and 22 straight against Colorado in Norman, Okla.
The Sooners were without center Longar Longar, who's out indefinitely with a broken bone in his right leg. Longar suffered the injury in a loss at Texas A&M on Feb. 2. He's averaging 13.2 points and 5.9 rebounds this season.