EUGENE, Ore. -- Colorado snapped Oregon's 20-game home winning streak by holding the Ducks scoreless in the final four minutes.
The Buffaloes scored the final eight points of the game in the last 3:54 to rally from a seven-point deficit and upset the 19th-ranked Ducks 48-47 Thursday night at Matthew Knight Arena.
Carlos Emory put Oregon ahead 47-40 with 4:23 to play before the Ducks went scoreless the rest of the way.
Josh Scott had a rebound basket for Colorado before Askia Booker and Scott each made a free throw. Andre Roberson got a rebound basket that got Colorado within 47-46 with 2:09 to play. Roberson scored off a rebound to put the Buffaloes ahead 48-47 with 29 seconds left to play, giving Colorado its first lead of the game.
E.J. Singler had a shot blocked with three seconds to play and Roberson got the rebound.
"Our guys battled tonight," Colorado coach Tad Boyle said. "We have talked about defense and rebounding all year and our guys really bought in tonight. Defensive and rebounding, that is what we pride ourselves on in Colorado basketball."
It was the second straight game that Oregon blew a lead by going scoreless in the final four minutes.
"We just didn't get stops down the stretch and that has hurt us the last two games," Singler said. "We just have to focus on that and get better from it and learn from it."
Singler and Emory scored 14 apiece to lead Oregon (18-5), which fell to 7-3 in the conference with its third straight loss and fell one game back of Arizona in the conference race.
"Obviously, I am very disappointed," Oregon coach Dana Altman said. "It is the second game in a row where we didn't finish. This one, we had some real bad turnovers on offense, some plays that we didn't execute. Defensively, we did not get many stops.
"The difference in this game was rebounding. They had 17 second-chance points and we had eight, and none were more obvious than the ones in the last four minutes."
Roberson had 10 points and 13 rebounds to lead Colorado.
"That is just an unbelievable win," said Boyle, whose Buffaloes (15-7) improved to 5-5 in conference. "I think that was the only time we led, at the end. That shows resilience and resolve by our team."
Oregon led 39-33 on two free throws by Emory with 11:02 left in the game and the Ducks stretched the lead to 45-38 on a basket by Singler with just over five minutes left to play.
Oregon never trailed in the game until Colorado's final basket.
Colorado fell behind 9-7 after Roberson scored on a rebound dunk, but Oregon answered with six straight points. Emory made a jumper and Arsalan Kazemi dunked after a rebound before Willie Moore made a jumper to put the Ducks ahead 15-7.
Jeremy Adams hit two free throws for the Buffaloes before Xavier Johnson made a basket as Colorado closed to 15-11.
After a basket by Singler, Johnson hit a jumper and Adams connected on a 3-pointer to get the Buffs to 17-14 with 6:55 left in the first half. Booker tied the score at 17 on a 3-pointer.
Singler went inside for a basket that put Oregon back ahead and Damyean Dotson followed with a layup that gave the Ducks a 21-17 lead.
Oregon stretched the lead to 26-19 on a 3-pointer by Singler with 2:11 left in the first half, but Scott closed out the half with a jumper for the Buffs.
NOTES: Oregon played its fourth straight game without starting point guard Dominic Artis, who is out indefinitely with a foot injury. Johnathan Loyd, who injured his wrist in the last game against Cal, got the start in place of Artis. ... Oregon's 20 straight home wins was tied for the sixth-longest streak in the nation with Iowa State and it was the third-longest home winning streak in school history. ... Singler made his 100th consecutive start. ... The Buffaloes, who joined the Pac-12 last year, won in Eugene for the first time since 1955.