Josh Onomah struck deep into added time to keep Fulham's automatic promotion hopes alive with a 1-0 win over Birmingham.
Scott Parker's side appeared set for frustration as they struggled to break down a Birmingham side now without a win in nine Sky Bet Championship matches.
But Onomah - on as a 60th-minute substitute - swept home from 12 yards to deliver the victory that moves them to within four points of second-placed West Brom.
Prior to that moment, the Cottagers had struggled to break Birmingham down with in-demand Blues teenager Jude Bellingham coming closest to breaking the deadlock.
And the youngster came close to scoring his fifth league goal of the season when an early header crashed against the Fulham crossbar.
Parker's side survived that scare but did not look capable of taking full advantage until they injected more tempo into the game after a disappointing first half.
Even then, when they did manage to find a way through the Birmingham defence, visiting keeper Lee Camp produced a succession of fine saves before he was finally beaten by Onomah.
The Cottagers had struggled to find their feet after the restart, suffering back-to-back defeats before the midweek win at QPR.
And it looked as though they would rue the continuing absence of striker Aleksandar Mitrovic, who was serving the second game of a three-match ban.
In the absence of the leading scorer, Bobby Decordova-Reid led the Cottagers' attack but was unable to provide the same cutting edge.
There was a greater sense of urgency in Fulham's approach after the break as they dominated long periods of possession.
Ivan Cavaleiro got to the byline on the left hand side before pulling back, Anthony Knockaert failed to make a proper connection and the winger's shot was easily saved by Camp.
Camp again denied Knockaert before producing a superb double save from Joe Bryan and Decordova-Reid, but the keeper was powerless to prevent Onomah claiming the points after being set up by Harrison Reed.
What the managers said...
Fulham's Scott Parker: "That gives a sense of relief. As the game goes on, you miss some big chances, and the keeper pulls off an amazing double save. You start wondering if it is not your day. It was tough. We came up against a team who came here to play for a draw. At times the game was played in their half.
"It's a massive win for us, the way things have panned out in terms of lockdown, the games we have left. I think there will be many twists and turns. Our main focus is to win games. We have some tough games coming up. Whether you play someone at the top end or mid-table, they will be very big games."
Birmingham's Pep Clotet: "I'm devastated. Devastated for the players, for the club and for the fans. I thought the result was completely unfair. We had the most chances. We had two good chances in the first half and possibly a penalty. If we had scored those chances it would have been a completely different games.
"It's unfair but that happens. We deserve a point and could have had three. Unfortunately we lost the point we worked so hard to get. But I am pretty sure the performances will get better. I am not looking over my shoulder. We want to finish as high as possible."