Betis had the best possible start when, with just three minutes on the clock, Rossello Didac finished an individual effort with a great strike from inside the box.
The home side pushed on in search of a second after that, and went close when Leo Baptistao weaved his way through the Rubin defence before firing at goal from just outside the box. However, Sergei Ryzhikov kept it out with a strong save.
The night soon got worse for Rubin, however, when Alexandr Prudnikov was shown a second yellow card and then a red for a poor tackle.
Damien Perquis missed with a header, while Cedric failed to connect with a cross in what looked like a promising opportunity for the hosts. Baptistao also shot wide just before half time.
The second half was a much tighter affair, with Betis unable to find a second goal despite their numerical advantage.
Rubin, who had gradually forced their way back into the match, were then awarded a penalty when Lorenzo Reyes brought down an attacker. Roman Eremenko stepped up and found the bottom corner for an important away goal for his side.