Louis Saha struck twice in three first-half minutes as Fulham produced a smash and grab win at Loftus Road.
The Fulham hitman left Portsmouth dumbstruck as he buried his only two chances of the game with devastating effect, to lift his side up to fifth place in the table.
And despite having Patrik Berger sent off ten minutes from time, Pompey will feel hard done by as they dominated the game for long periods.
Harry Redknapp's side had all the early pressure and twice went close from Berger's ever dangerous corner kicks.
After just five minutes Hayden Foxe rose to head wide from a Berger set-piece and ten minutes later Dejan Stefanovic came within inches of giving the visitors the lead.
The Pompey defender outjumped the Fulham defence to head goalwards, but Jerome Bonnissel rebounded his effort away with a firm chest.
On the 20-minute mark Pompey were presented with another fantastic chance as Yakubu Ayegbeni beat the offside trap with ease, but Moritz Volz made a superb covering challenge to put the striker off.
On the half-hour mark Fulham took the lead against the run of play. The South Coast side failed to clear a high ball and Saha pounced to hit a ferocious left-foot drive home from the edge of the box.
Three minutes later the Frenchman doubled his tally as he powered a header into the roof of the net after a super Lee Clark cross.
Arjan De Zeeuw went close for Portsmouth after half time, but it was Fulham sub Facundo Sava who came closest, as his header hit the bar on 70 minutes.
Ten minutes from time Deon Burton fired a shot straight at Edwin Van der Sar and moments later Pompey were left fuming as Ayegbeni had a penalty claim turned down. Czech star Berger was so furious with referee Alan Wiley he was given his marching orders for foul and abusive language.
Junichi Inamoto could have rounded off the victory in the dying minutes, but failed to hit the target from five yards.