Chelsea are into the Europa League semi-finals despite being narrowly beaten in Russia.
An early goal should have made things comfortable, but a second-half fight back from Rubin made for a harder night's work than many would have predicted when Fernando Torres put us in front after four minutes.
An early scare was quickly forgotten once the Spaniard lifted us into the lead, seemingly putting us out of reach of our hosts, who took until the last minute of the first half to really stretch Petr Cech, who was forced to save well from Rubin captain Gokdeniz Karadeniz.
Ivan Marcano then headed level five minutes into the second half, only for Victor Moses to quickly restore our three-goal aggregate cushion. That should have been that but Karadeniz was then allowed a free header to level, before Bebras Natcho converted a penalty after a foul by Cesar Azpilicueta inside the area.
It made for a potentially nervy final 15 minutes, but Cech was called into action only once, and we take our place in the last four, two games away from a trip to Amsterdam for May's final.
The major headline in Rafael Benitez's selection was the decision to start Nathan Ake in deep midfield alongside Frank Lampard, meaning a European debut for the 18-year-old. He had been touted as a potential stand-in left-back with both Ryan Bertrand and Ashley Cole missing, but that role was given to the ever dependable Paulo Ferreira, who had featured just five times previously this season, the last time in February. This was the sixth competition he had played in this season.
John Terry started his 100thEuropean game for the Blues, while in making his 421st appearance for the club, Cech drew level with Steve Clarke as our joint-seventh highest appearance maker of all time.
Torres, impressive at the weekend against Sunderland, came in for the cup-tied Demba Ba in attack, with support coming from Ramires on the right, Yossi Benayoun and Moses. Eden Hazard, Juan Mata and Oscar were all among the substitutes.
An eerie quiet fell over the Luzhniki Stadium just before kick-off, the few thousand supporters struggling to make themselves heard in an arena capable of holding many times more the number inside for this game.
The home fans, you consider, might have burst to life had Cesar Azpilicueta made a vital block inside the area from Roman Eremenko's shot goalbound shot after just three minutes, but 60 seconds later they were silenced by Torres.
Lampard sent a long ball over the top of the Rubin defence and goalkeeper Sergei Ryzhikov committed himself to getting there first, but did not allow for the synthetic surface slowing the ball's progress, and Torres, quicker over 20 yards than his opponents, arrived first to lift it up and into the empty net from around 30 yards.
Fernando Torres after scoring against Rubin
It was a major blow for the tie, cancelling out Rubin's away goal and gifting the Blues a three-goal cushion that the Russian side rarely looked like overturning in a stale first half.
Moses brought a save from Ryzhikov while Natcho shot wide and Eremenko worked Cech low to his left for the hosts, but excitement was at a premium.
John Terry in action against Rubin
Just before the break came Rubin's best opportunity, a floated ball into space behind the defence latched upon by Karadeniz, but Cech showed why he is among the best around with a fine outstretched save to his right. Chelsea had one foot in the last four.
Five minutes after the restart, the hosts gave themselves a lifeline when Pablo Orbaiz crossed from the right and defender Marcano rose above Ramires to head home. It was a goal spookily reminiscent of Cristiano Ronaldo's effort five years earlier in the Champions League final.
Chelsea's next attack saw us restore the lead on the night. Lampard supplied a pass to Moses on the edge of the area, and the Nigerian exchanged passes with Ramires before guiding the ball past Ryzhikov into the far corner to make it 2-1 on the night. Rubin now needed four, with the Blues boasting an extra away goal.
Victor Moses scores against Rubin
John Mikel Obi replaced Ramires to add an extra layer of steel, and give the Brazilian a rest, but Rubin quickly equalised once more, Karadeniz, the smallest player on the pitch, rising highest in the area to head home a left-wing cross, with Cech unable to beat it out despite getting hands to it.
Rubin score against Chelsea
Marcano then headed against the outside of the post as the home side finally applied some sustained pressure, and they were rewarded with a penalty when Azpilicueta was adjudged to have bundled over substitute Aleksandr Ryazantsev in the box. Natcho coolly despatched the kick into the top corner.
Jose Rondon then headed straight at Cech with 10 minutes to go. A goal then would have given Chelsea real trouble, but the striker's failure to convert signalled the beginning of the end for Rubin, and they created little else in the remaining time, Chelsea sub Oscar having the game's final opportunity with a curling effort comfortably saved by Ryzhikov.
Narrowly beaten on the night, Chelsea progress to the semi-finals regardless. The draw is on Friday morning.
Chelsea (4-1-4-1): Cech; Azpilicueta, Terry (c), David Luiz, Ferreira; Ake; Benayoun (Oscar 76), Lampard (Ivanovic 90+1), Ramires (Mikel 59), Moses; Torres.
Unused substitutes: Turnbull, Mata, Marin, Hazard.
Goals Torres 4, Moses 55
Booked Oscar 90
Rubin Kazan (4-2-3-1): Ryzhikov; Kuzmin (Kaleshin h-t), Navas, Marcano, Ansaldi; Natcho, Orbaiz (Dyadyun 65); Karadeniz (c), Eremenko, Kasaev (Ryazantsev 71); Rondon.
Unused substitutes: Arlauskis, Kislyak, Tore, Sharonov.
Goals Marcano 50, Karadeniz 62, Natcho 74 pen
Booked Marcano 86
Referee Firat Aydinus from Turkey