The Russian team raised their record to 3-3 in Top 16 Group K behind Proteas EKA AEL (5-1) while Cajasol slumped to 2-4.
Ural Great opened up a 68-52 lead late in the third quarter and looked to be cruising but ended up having to hold on over the final two and a half minutes.
Two free throws by Cajasol's Tyrone Ellis trimmed the deficit to 77-76 with 2:20 to go but they got no closer.
Alexander Bashminov went to the other end and made a lay-up for Ural Great.
Cajasol still had their chances.
Ellis was off target with a three-ball and Juan Jose Triguero missed a lay-up.
Following a Ural Great miss, Cajasol turned the ball over.
They got the ball back again after a Bashminov miss but Ellis failed to connect from long range again.
Ural Great's Darius Vashington drilled two free throws for the final score.
The Russians did much of their damage from three-point range, hitting 10 of 23 compared to just five of 18 for Cajasol.
Vashington led all scorers with 19 points.
"Ural Great surprised us in the beggining with their high pace. They defended aggressively until the last quarter. Then we started playing more aggressive and we had a chance to win. They had a very high percentage in three throws, and we were unwise in that respect. They played a very good game."
Aleksandar Kesar, Ural Great coach:
"I am very happy with the win and us qualifying for the next round of EuroChallenge. Tonight, we put on two faces because we were ten points up in the third quarter but then we made many mistakes and Cajasol managed to reduce the arears. I want to congratulate all my players and all the staff, because we have realised our goals."