An inspired Kieran Richardson scored twice to earn Sunderland a vital win in their fight against relegation.
Richardson (centre) was the driving force for Sunderland
After 33 minutes of anxious football, during which Benjani volleyed the best chance wide, Richardson took control.
First the midfielder slid in to drill a low shot into the right corner after being picked out by Kenwyne Jones.
Then he picked up a loose ball, ghosted by Herman Hreidarsson and thumped home an angled shot, while in the second half he cracked a shot against the bar.
Visiting boss Harry Redknapp may have declared his happiness at Pompey prior to the match, insisting he would not be leaving to manage Newcastle, but his mood must have turned dark at the final whistle.
Robbed of a number of key players who are on duty at the Africa Cup of Nations, Redknapp was forced into fielding an unfamiliar line-up.
And perhaps unsurprisingly, they gave an unfamiliar performance as the team with the best away record in the Premier League resembled anything but.
Yet in the early stages Sunderland could not take advantage, with both teams looking disjointed as well as short of pace, ideas and confidence.
It was Pompey, despite the fact they were surrendering possession and territory, who created the first two chances.
Benjani scuffed his volley after Hreidarsson headed a Pedro Mendes free-kick back across goal while Niko Kranjcar saw a fierce drive palmed away by Craig Gordon.
All Sunderland had managed at that stage were three tame efforts from Anthony Stokes - two from the boot and one header - none of which troubled David James.
Then it all changed as Sol Campbell stopped to claim a foul after being held off by Jones, leaving the striker free to cut back a pass for Richardson to finish sublimely while under pressure.
Eleven minutes later, Richardson pulled rank on Daryl Murphy to claim possession before embarking on a strong, diagonal run past Hreidarsson and cracking a right-foot shot back into the left corner.
After the break, both sides tried to inject some pace into their game and suddenly the match had a cup-tie feel about it.
Richardson curled a shot just over as he went in search of his hat-trick and then the action moved to the other end as Pompey pushed for a way back into the game.
Sadly for the visitors, they lacked a finishing touch - Richard Hughes lacked any touch at all as he embarrassingly swung and missed when well-placed on the edge of the box.
Benjani then beat Gordon but found Danny Collins rather than David Nugent with his cross.
Back came Sunderland, only the bar preventing Richardson claiming a fantastic third goal, as his rasping drive smacked back into play off the woodwork.
That proved the last decent chance of the game, but by then Sunderland had done enough to give their relegation survival hopes a huge boost.
Sunderland boss Roy Keane:
"The players responded well and it was a very good win and an excellent performance.
"If the players keep playing with that quality, desire and determination then hopefully we will have a good season.
"We were definitely the better team and we could have scored one or two more goals. The players handled the pressure of situation brilliantly and we're delighted with them.
"We have missed Kieran Richardson, and he was excellent the way he burst through and scored goals. We are delighted with him - and also with his defensive contribution."
Portsmouth assistant boss Tony Adams:
"It was not a funny performance, I did not find it hilarious at all. We did not play well today - we were poor.
"We went to sleep and conceded two sloppy goals. Kieran Richardson ran away from our midfield and scored two goals when we switched off.
"Perhaps we need to learn how to scrap with these teams."
Sunderland: Gordon, Whitehead, Nosworthy, Evans (McShane 77),
Collins, Stokes (Leadbitter 73), Miller, Yorke, Richardson,
Jones (O'Donovan 83), Murphy.
Subs Not Used: Fulop, Cole.
Booked: Collins, Richardson, Yorke.
Goals: Richardson 33, 44.
Portsmouth: James, Pamarot, Distin (Traore 90), Campbell,
Hreidarsson, Mwaruwari, Mvuemba (Songo'o 65), Pedro Mendes,
Hughes, Kranjcar, Nugent.
Subs Not Used: Begovic, Lauren, Wilson.
Booked: Pedro Mendes.
Ref: Chris Foy (Merseyside).
BBC Sport Player Rater man of the match: Sunderland's Kieran Richardson 8.55 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.