Benjani Mwaruwari and then Hermann Hreidarsson scored within a two-minute blitz despite Fulham enjoying the better chances.
Fulham, meanwhile, have now failed in win in their last six games to pile more misery on manager Lawrie Sanchez.
Ironically, Clint Dempsey made a good start for Fulham when his shot from the edge of the box drew a good save from David James.
David Healy then forced James to make another save when his acrobatic strike was on target.
At the other end, Sulley Muntari tested Kasey Keller with a low shot that the American tipped round the post.
James then nearly gifted Fulham an opening goal when he made a hash of Healy's cross in the 15th minute, but fortunately for the goalkeeper, the ball bounced away from Dempsey who was lurking in the box.
The Portsmouth goalkeeper almost then turned provider for his own team when his long goal kick bounced through the Fulham defence causing Keller to punch clear.
A clever Fulham free-kick in the 39th minute nearly broke the deadlock when Chris Baird fed Simon Davies, but the Wales international was unable to turn the ball past James.
But as Fulham piled on the pressure, they were nearly caught on the counter attack.
James' throw was perfect for John Utaka who beat Hameur Bouazza but he was denied a clear shot at goal by Paul Konchesky, who made a good recovery tackle.
Just seconds later, Bouazza created a golden chance for Healy to give Fulham the lead.
The midfielder's cross was perfect for the Northern Irishman but his shot was planted straight at James who saved despite knowing little about it.
After the break it was Portsmouth who looked likeliest to open the scoring - and they did not have to wait long.
Benjani got his reward for perseverance when he latched onto Sean Davis' pass to fire past Keller in the 50th minute.
The ball took a cruel deflection off Carlos Bocanegra's boot to give the goalkeeper no chance.
Fulham were still in shock when Hreidarsson doubled Portsmouth's advantage two minutes later.
Hreidarsson out-muscled Baird on the wing before racing through and slotting past Keller.
Davis was then inches away from putting the game beyond Fulham's reach when he failed to convert a dangerous cross.
Fulham searched for a way back but could not find a way past the resilient Portsmouth defence.