Duda Sanadze scored 15 points, including three free throws in the final 2.9 seconds that helped clinch the 69-66 victory against No. 25 Gonzaga, the first time the Bulldogs have lost consecutive games this season.
"This is one of my greatest experiences as an athlete ... right there with the Little League World Series," said USD guard Johnny Dee, who led the Toreros with 16 points. "To beat a Top 25 team, I'm so pumped right now.
"Since I've been here we've had so many opportunities, close games with good teams where it would have been a great upset for us. To finally get over the hump and beat a Top 25 team and have the students rush, what a great experience."
The Toreros (16-14, 7-10 West Coast Conference) snapped an 11-game losing streak to Gonzaga (23-6, 13-3), which once again was denied clinching the outright league title. The Zags have clinched at least a tie for the title.
With USD leading 66-63, the refs ruled that the ball went off Dee's foot on an inbound play with 3.2 seconds left. After a video review, they reversed the call and Sanadze was fouled by Kevin Pangos and made one of two free throws. David Stockton made a 3-pointer with 0.5 seconds left to pull the Zags within one point. Sanadze was fouled by Kyle Dranginis and made both shots to clinch it.
Stockton missed a desperation shot at the buzzer and the fans stormed the court.
"That's a really hard program to beat," said San Diego coach Bill Grier, a former Gonzaga assistant. "You look at it from the mid-90s on, everybody in this league has struggled to beat them. That's just an awesome win.
"We didn't play perfect by any means, but we played awfully hard," Grier added. "We scratched and clawed. That's what you have to do to beat them and we made enough plays down the stretch to win it."
Sam Dower Jr. had 18 points and 15 rebounds for Gonzaga. Big man Przemek Karnowski had 17 points before fouling out with 4:04 left and the Toreros leading 62-57. Gary Bell Jr. added 11 points.
"We knew it was going to be a tough game," Gonzaga coach Mark Few said. "When the good teams come in here they play them really tough. They got after us and made shots, executed their offense and then again, it was anybody's game down the stretch. They made plays, got offensive rebounds and extended possessions and we didn't."
USD had a huge advantage at the free throw line, where it made 23 of 33 shots compared to 6 of 11 for the Zags.
USD jumped to a 49-38 lead four minutes into the second half after 3-pointers by Dee, Christopher Anderson and Sanadze. Dee also made two free throws early in the half.
Gonzaga quickly got within five after Dranginis hit a 3-pointer, Karnowski an inside shot and Dower a baseline jumper.
Anderson hit a 3-pointer just before the halftime buzzer to give USD a 36-35 lead, its first of the game. During the break, refs reviewed video of a shot by Bell that had been ruled a 3-pointer and determined that his foot was on the line, making the score 36-34.
Gonzaga had taken leads of 10-2 and 12-5 before USD pulled itself back into the game on 3-pointers by Brett Bailey and Dee.
The Zags pulled out to a 27-23 lead late in the half before the Toreros had three straight slam dunks, two by Jito Kok and one by Simi Fajemisin to pull to 30-29.