Second-half goals from Benjani and Hermann Hreidarsson lifted Portsmouth up to fifth in the Premier League and left Fulham in the bottom three.
Sean Davis set up Benjani for Pompey's first goal
Benjani got the better of Carlos Bocanegra and collected Sean Davis' pass to fire home in the 50th minute.
Two minutes later, Niko Kranjcar's pass found Hreidarsson, whose shot went in via a deflection off Chris Baird.
Portsmouth goalkeeper David James staked his claim for an England starting place with several good saves.
Indeed, Benjani's opener came after both keepers had been tested during a lively first half.
Fulham forward Clint Dempsey's 25-yard drive was pushed away by James, who also held long-range efforts from David Healy and Baird.
At the other end, Kasey Keller got down quickly at his near post to keep out Sulley Muntari's left-foot strike after the Pompey striker had bulldozed his way past Bocanegra.
Keller again rescued Fulham when James' throw released John Utaka, who left Hameur Bouazza and then Paul Konchesky for dead before seeing his shot saved.
Bouazza, who started on the left flank at the expense of Seol Ki-Hyeon, delivered a lovely cross just before half-time that almost led to Fulham going ahead.
The former Watford man tricked his way past Glen Johnson and found Healy, who was denied at point-blank range by another fine stop from James.
Glen Johnson (r) challenges Fulham's Clint Dempsey
James' heroics proved to be crucial, because within seven minutes of the re-start, his side were two up.
Soon after Bocanegra allowed Benjani to get in front of him and score, Steven Davis was muscled off the ball by Kranjcar and the midfielder's perfectly-weighted pass set up Hreidarsson for his second goal of the season.
In attempting a last-ditch tackle, Baird succeeded only in diverting Hreidarsson's shot beyond Keller.
That prompted Fulham boss Lawrie Sanchez to make a triple change, with Diomansy Kamara, Danny Murphy and Seol replacing Healy, Baird and Alexei Smertin.
The home side rallied and Dempsey fired wide after finding space in the Pompey area.
But the visitors always looked dangerous on the break.
Fulham's defensive shortcomings were summed up when Bouazza failed to track Johnson, who pulled the back for Kranjcar to drag his effort wide of the target.
Benjani should have added a third for Portsmouth late on but shot straight into Keller's arms from 10 yards.
Fulham manager Lawrie Sanchez:
"I can understand the fans' frustration. They have seen us play some good stuff this season but number one for them is results, and we are just not getting them.
"The perfect way is getting wins and entertaining along the way but for those fans who pay good money, entertaining comes second.
"I was pleased with some of our players and not so much others but I don't feel let down. Two wins could put us back in the middle of the table."
Portsmouth manager Harry Redknapp:
"We're on a good little run and it's been a fantastic start to the season. We have just got to keep going.
"Of course it is possible we will challenge for Europe again this season but so will Newcastle, West Ham and many others. I'm not getting too carried away.
"It's another good result and I'm still happy to think we might finish in the top half of the table."
Fulham: Keller, Baird (Murphy 60), Bocanegra, Hughes, Konchesky, Davies, Davis, Smertin (Ki-Hyeon 61), Bouazza, Healy (Kamara 61), Dempsey.
Subs Not Used: Niemi, Stefanovic.
Portsmouth: James, Johnson, Distin, Campbell, Hreidarsson (Pamarot 87), Muntari, Kranjcar, Davis, Diop (Pedro Mendes 76), Utaka, Mwaruwari.
Subs Not Used: Ashdown, Taylor, Nugent.
Goals: Mwaruwari 50, Hreidarsson 52.
Ref: Howard Webb (S Yorkshire).