Everton will have been left frustrated that a performance that was good in parts was ruthlessly punished because of poor defending and clinical Pompey finishing.
Harry Redknapp will have been satisfied to finally see his side get off the mark after a tough start to the season - but the pressure is now on Everton boss David Moyes and chairman Bill Kenwright to inject quality and strength into their squad after a second successive home defeat in the Premier League.
Redknapp pleased to get first win of season
Everton made one change from the side which won at West Bromwich Albion, with Vaughan replacing 16-year-old Jose Baxter.
Redknapp kept faith with the players who lost at home to Manchester United on Monday - and was rewarded with a two-goal lead at the interval, albeit against the run of play.
Defoe provided a brilliant finish after 12 minutes, swivelling away from Joleon Lescott to beat Tim Howard from 12 yards after Peter Crouch headed into his path.
Howard then saved superbly from another low drive from Defoe, with the striker looking razor-sharp after a barren start to the season.
It was the signal for Everton to lay siege to the Portsmouth goal, but they were denied by a combination of ill-luck, superb goalkeeping from James and desperate defending.
Arteta thought he had levelled after 21 minutes when he was found right in front of goal by Yakubu, but James somehow turned his shot on to the post and then recovered to beat the Spanish midfield man to the rebound.
Moyes admits Everton were second best
Younes Kaboul then produced a miraculous clearance to stop Yakubu on the goal-line after Vaughan headed Leighton Baines' cross into his path.
But Everton's momentum was stopped in its tracks five minutes before half-time when Johnson and Defoe exchanged passes for the England defender to slip a comfortable finish past the exposed Howard.
Everton then wasted an opportunity to grab a lifeline seconds after the break when they were awarded a penalty after Vaughan collided with Johnson in the area.
Yakubu stuttered and stopped in his run-up, and it was almost inevitable that he would deliver a tame penalty that was saved by James.
Everton continued to enjoy domination in terms of possession and territory, but it was Portsmouth who got their third after 69 minutes.
Sean Davis found Defoe, who chipped Howard with consummate skill - the ball bounced down off the bar, and even though Crouch made sure replays showed the ball had already crossed the line.
The game ended in near silence at Goodison Park as the home fans reflected on another disappointing home result and the lack of quality signings to boost a side that finished fifth last term.
Everton manager David Moyes: "We are not in condition to win Premier League matches. We have not got players in the right slots and senior players are not playing the way they should be.
"We've got a lot of young players in the side but it's not those players who are letting us down.
"I don't think we have played well in any game so far, although I thought we probably played better here than we did when we won at West Brom and lost at home to Blackburn.
"Portsmouth defended well and took their chances. We defended poorly and didn't take our chances."
Portsmouth manager Harry Redknapp: "I'd been waiting for Jermain Defoe to come good - him and Peter Crouch - and it was nice to see them link up together.
"Defoe scored a great goal. He's got that ability and he also worked very hard for the team as well. It was a great result for us.
"And David James is different class. That was a world-class save in the first half from Mikel Arteta to keep us 1-0 up and then to save the penalty from Yakubu as well - he's a fantastic goalkeeper."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.