The defeat for Rostov dropped the Russian team to 3-2 and prevented them from challenging for the top spot in the group.
Cholet guard Kevin Braswell scored a season-high 24 points in the victory.
The visitors from France appeared to be in control but went ice cold from the floor over the last five minutes. They scored just two points in the last five minutes but still managed to prevail.
Trailing 64-59, Rostov got a lay-up from Szymon Szewczyk.
With 2:20 to play, Antywane Robinson restored the five-point cushion for Cholet with a jumper.
Dramir Zibirov and Ivan Tomas each went to the line and sank two free throws to close the gap to one.
After both sides turned the ball over, Lokomotiv called a timeout with 18 seconds left.
But when play resumed, Lokomotiv's Valentin Kubrakov committed a turnover with a bad pass.
He fouled Vincent Grier and Cholet's North Carolina-born forward missed both attempts.
Tomas was off target with a three-pointer at the end for Lokomotiv, though.
Szymon Szewczyk, player of BC Lokomotiv
"The game was very hard. We lost by one point. We could have won in if we didn't lose our key player (House) to injury."
Erman Kunter, coach of Cholet:
"I want to say a great thanks to my team. Lokomotiv is a good team but we managed to beat them not only at home but also in Rostov."
Kevin Braswell, player of Cholet:
"Today we didn't even have 10 players in our roster. I scored today 24 points but it's not only my win. Today all the team played well."