Danny Murphy fluffed a penalty last night but Zoltan Gera made sure Fulham kept their Europa League dream alive with a hard-fought win.
Roy Hodgson's side, third in Group E going into last night's match, needed a victory to ensure they kept their fate in their own hands going into the final group game away to Basle.
The Swiss side's 2-1 loss to Roma last night means the Italian team are guaranteed a place in the next round, but Fulham must now beat Basle on December 16 to progress in the competition.
Lifeline: Gera wheels away after netting what proved to be the decisive goal
Hodgson said: 'Great credit to CSKA. They obviously had nothing to lose in the last 20 to 25 minutes and, of course, we made changes.
'I thought our first-half performance was quite outstanding. Apart from the missed penalty there were some really good chances and the game could have been dead and buried. I think over the 90 minutes we were still very good value for our victory.
'I'm very pleased we showed the strength of character. Lots of positives from my side; I'm very happy that we won the game.
'Unfortunately for us they managed to exert pressure but it pleased me that we managed to stand up to that pressure.
Off-target: Murphy failed to give Fulham the lead from the spot
'We're still trying to do the best we can in this competition. Since the four points dropped against Roma, we always thought we'd have to win our last two games to get through. It's going to be a tough ask, but not an impossible one.'
CSKA have yet to win in the group stage and arrived in west London in all sorts of disarray. Their coach, 43-year-old Luboslav Penev, resigned after a 3-1 loss to Basle in CSKA's last Europa League outing but was persuaded to return, only to be refused permission to travel to England by authorities chasing an alleged bank debt of £1million.
The former Atletico Madrid striker was eventually allowed to leave Bulgaria at 1.15pm yesterday, having reportedly paid off a portion of his debt, and was in the tunnel at Craven Cottage 15 minutes before the half-time whistle.
Hodgson's problems may have seemed small, and far less dramatic, in comparison. But injuries and suspensions to many of his more experienced players, such as Andrew Johnson and Dickson Etuhu, forced the Fulham boss to shuffle his hand once again.
Crunch time: Clint Dempsey shows no mercy on Apostol Popov
Fulham were, however, given a boost by the return of Murphy in the centre of midfield. The club's captain, 32, had not played since picking up a knee injury against Hull City six weeks ago, but stepped up to take a ninth-minute penalty when Ivan Ivanov pulled down Gera after Bjorn Helge Riise had threaded through a lovely ball from the left.
Murphy, who lasted until the 78th minute when he was replaced by Damien Duff, will not want to see a replay of a quite dreadful spot-kick, chipped over the bar with his right foot.
CSKA had given Fulham a scare after five minutes when Todor Timonov's right-foot shot from outside the box beat Mark Schwarzer before rebounding off the bar, but the Bulgarian side posed little threat.
It was not until the final 10 minutes that CSKA looked like ruining Fulham's evening. Damien Duff cleared off the line in the 82nd minute after a fizzing shot from substitute Kosta Yanev had beaten Mark Schwarzer, and lone striker Spas Delev went close with a long-range effort minutes later.
Jump for Roy: Bobby Zamora in action against CSKA
Fulham had taken a deserved lead in the 14th minute after Gera nipped in between CSKA's static defence to head home a cross from Riise.
But Fulham have been punished in the last two group games, both against Roma, for failing to capitalise on early leads, and Hodgson had his head in his hands again after Simon Davies dragged a shot wide in the 29th minute.
The Fulham boss kicked the turf again in the 50th minute when Bobby Zamora skewed a right-foot shot wide after some neat interplay with Gera, who was lively and creative in the second striker's role all night.
Only an excellent interception from Apostol Popov prevented the Hungarian from stealing in to score his second, and Fulham were denied a second penalty when Riise was barged over in the box by Pavel Vidanov.
Fulham were able to substitute Brede Hangeland at half-time, with a nod to Sunderland's visit to Craven Cottage on Sunday, but Davies left the field in the 78th minute and had a suspected muscular strain in his right leg.
Fulham boss Hodgson hoping Murphy can go the distance in Europa clashTHE FIRING LINE: Reprieve for Rafa Benitez but find out who's closer to the Premier League chopFULHAM FC