Brian McBride came off the bench to score the goal that might just secure Fulham’s Premiership status for another season as the Londoners staged a stirring fightback to inflict a damaging defeat on relegation rivals Portsmouth.

The American put Fulham in front with an audacious overhead kick and his arrival added an aerial presence up top for Chris Coleman’s side, who flourished once Luis Boa Morte moved out to the left flank. Pompey appeared to have three precious points in their grasp after Lomana LuaLua’s superb strike stunned the home crowd and Jamie Ashdown’s excellent penalty save from Steed Malbranque on the stroke of half-time only boosted their spirits.

But Fulham roared back in the second period to ease the pressure on Coleman. Boa Morte did brilliantly to create the equaliser for Andy Cole and, once McBride plundered a second via an acrobatic bicycle kick, the Portuguese winger finished off Pompey after robbing Linvoy Primus in stoppage time. The relief around Craven Cottage at full time was tangible.

The game was remarkably open given the high stakes and Portsmouth took advantage of Dejan Stefanovic avoiding a red card for cynically chopping down Boa Morte as he burst through on goal to take a stranglehold on proceedings. Patrik Berger threatened to open the scoring with a purposeful run but Edwin van der Sar was quickly off his line after anticipating the danger. Zat Knight was required to step in to thwart Yakubu as he prepared to power Steve Stone’s cross and when the Nigerian did latch onto another Stone delivery, van der Sar produced a brilliant save.

The away side went in front just after the half hour. LuaLua took full advantage of being afforded plenty of time and space by Moritz Volz and Knight as he cantered into the box and lashed an unstoppable strike past van der Sar. Fulham had barely featured as an attacking force, with Sylvain Legwinski and Claus Jensen spurning their most notable chances, and they could have been forgiven for thinking it wasn’t going to be their day when Ashdown first saved Malbranque’s poor penalty and also smothered Boa Morte’s rebound after Giannis Skopelitis handled.

Pompey continued to threaten after the interval with LuaLua’s direct running setting up a chance for Berger, whose shot from 20 yards crept just wide. Coleman withdrew the ineffectual Jensen to sent on McBride, moving Boa Morte out to the left flank and Portuguese winger immediately delivered the short of service strikes thrive on. Cole clinically lifted the cut-back high into the net and Fulham looked an entirely different proposition with McBride partnering the veteran striker.

The home side’s new sense of adventure was typified by a right wing raid from full back by Moritz Volz who almost forced an error from Arjan de Zeeuw. From the resultant corner, Cole clattered the woodwork with a header from three yards out and the loose ball evaded a host of white shirts. A lovely LuaLua flick released Yakubu, who shot fractionally wide from just outside the area, to demonstrate just how pivotal the next goal would prove.

Fulham got it with ten minutes remaining – as McBride pounced on de Zeeuw’s dreadful back header to improvise a brilliant finish over the stranded Ashdown. Another error cost Pompey dear in stoppage time as Primus was stripped of possession by Boa Morte, who rolled Fulham’s third into the net with a modicum of fuss.

FULHAM (4-3-3): van der Sar; Volz, Rosenior, Knight, Goma; Legwinski (Radzinski 64), Clark (Bocanegra 84), Jensen (McBride 57); Malbranque, Boa Morte, Cole. Subs (not used): Crossley, John.

BOOKED: Rosenior, Goma, Boa Morte.

GOALS: Cole (63), McBride (81), Boa Morte (90).

PORTSMOUTH (4-4-2): Ashdown; Taylor, De Zeeuw, Primus, Stefanovic; Cisse, Stone (O’Neil 77), Berger (Kamara 82), Skopelitis; Yakubu (Fuller 88), LuaLua. Subs (not used): Chalkias, Hughes.

BOOKED: Stefanovic, Skopelitis, O’Neil.

GOAL: LuaLua (32).

REFEREE: Mark Clattenburg (County Durham).