Aleksandar Mitrovic has never let Fulham down. Even tonight, when it seemed his late penalty miss might make their dreams of automatic promotion even more remote, the Serbian striker popped up with a more decisive moment at the death. Mitrovic leapt high to meet Aboubakar Kamara’s inch-perfect cross and thunder home a trademark header in off the crossbar and clinch a vital three points against distraught fellow promotion chasers Swansea City.

Swansea boss Steve Cooper was as enraged as his players, who surrounded referee Tim Robinson following the final whistle, suggesting that the official had overlooked as many as three penalty appeals, whilst granting Fulham a spot-kick after Neeskens Kebano had tangled with Connor Roberts’ legs at the back post. That award certainly appeared generous – and there was an element of justice served up almost immediately when Freddie Woodman saved both Mitrovic’s unconvincing spot-kick and Kebano’s follow-up.

The penalty miss seemed to drain the life out of a Fulham side who had started at a much higher tempo than in recent weeks. But with time ticking by, Kamara grabbed his opportunity to improve. The French forward, given only eight minutes to turn what was by then a very open contest in Fulham’s favour, drove defiantly down the right and produced an outstanding cross for Mitrovic to bullet home an emphatic header having soared above Ben Cabango in the air.

There was no time for a crestfallen Swansea side to respond. Andre Ayew had to be dragged away from the officials by his team-mates, incandescent with rage at Robinson’s decision to award Fulham a penalty but reject his strong appeals at the other end. He appeared to have been crudely taken out by Denis Odoi, who slid in violently to end a slalom run that had carried him clear of Michael Hector and a couple of other Fulham challengers, as well as waving away convincing claims for handball against Joe Bryan.

Bryan produced a critical piece of defending deep into injury time to divert the ball away from Connor Gallagher as the Chelsea loanee seemed set to burst through on goal and thirty seconds later the ball was in the Swansea net. The visiting players and fans were angered by Robinson’s decision to play on – but television replays appeared to confirm that Bryan, who has been criticised for his defending this season, played the ball cleanly.

In the light of Leeds’ narrow win at relegation-threatened Middlesbrough, this proved a precious three points for Fulham. For an awfully long time, it looked like being another frustrating evening on the bitterly cold banks of the Thames. Scott Parker’s side began with purpose, with much more penetration than of late, but still lacked the decisive touch in front of goal. Woodman made a smothering save inside the first thirty seconds with Anthony Knockaert, who flattered to deceive once again, whipping in a shot at the near post.

The goalkeeper then made amends for a poor clearance by thwarting Bobby Decordova-Reid and later acrobatically tipped an inswinging Ivan Cavaleiro corner onto the crossbar. Swansea took a while to get themselves into the contest, but the visitors soon created openings of their own. Joe Rodon flicked a free-kick right across the face of goal and Ayew did brilliantly to burst away from Tim Ream and onto Gallagher’s clever flick but couldn’t find a finish after rounding Marek Rodak, allowing Odoi to nip in and clear in the nick of time.

Fulham continued to apply serious pressure of their own. Cavaleiro’s curler looped wide after Cabongo had closed the winger down effectively – bringing to an end a sweeping move that saw the Whites work their way out from the back before Cairney and Bryan fashioned the opening down the left. Mitrovic inexplicably shanked an effort wide after being released by Knockaert following a rare mistake from Joe Rodon and then volleyed fractionally over having made an opportunity all for himself: chesting down Rodak’s long kick and swivelling to shoot in an instant. Swansea could have been in front at the break, though, with former Brentford full-back Jake Bidwell heading agonisingly wide from a near post corner.

The second half didn’t quite have the same intensity to it initially, but it bubbled up nicely. The speedy Rhian Brewster, booked in the first half for a nasty lunge at Tom Cairney, fired straight at Rodak and Bryan was fortunate to survive penalty claims when he appeared to handle a cross from Jay Fulton. At the other end, Rodon produced a couple of excellent bits of defending in quick succession to repel Mitrovic and Cavaleiro.

Swansea had good chances to open the scoring on the break. Brewster spurned a good chance created by Bidwell and substitute Jordon Garrick was foiled by a great reaction save from Rodak and the offside flag. Ayew sped clear twice down the left wing, once he was denied by Rodak, and then by the referee when he was sent sprawling to the turf by Odoi’s ill-judged lunge.

The spot-kick actually arrived at the other end, when Robinson pointed for a penalty after two substitutes collided at the far post. It seemed an accidental tangling of legs between Kebano and Roberts, but the referee was adamant. Mitrovic went for placement rather than power and Woodman palmed away both the penalty and the rebound – only to be beaten at the very last by the Serbian’s moment of redemption.

FULHAM (4-3-3): Rodak; Odoi, Bryan, Hector, Ream; Arter (McDonald 90+5), Cairney, Decordova-Reid; Knockaert (Kamara 83), Cavaleiro (Kebano 78), Mitrovic. Subs (not used): Bettinelli, Christie, S. Sessegnon, Johansen.

GOAL: Mitrovic (90+4).

SWANSEA CITY (4-2-3-1): Woodman; Naughton (Roberts 82), Bidwell, Cabango, Rodon; Grimes, Fulton; Kalulu (Garrick 64), Ayew, Gallagher; Brewster. Subs (not used): Mulder, Wilmot, Dhanda, Cullen, Dyer.

BOOKED: Brewster, Fulton, Naughton, Ayew.

REFEREE: Tim Robinson (West Sussex).

ATTENDANCE: 17,626.