Wayne Rooney struck late on to push Portsmouth into the relegation zone.
In a game bereft of clear-cut chances, Pompey had the better early openings, with Yakubu Aiyegbeni's shot saved and Eyal Berkovic firing wide.
A poor match improved marginally after the break and Everton sub Tomasz Radzinski blasted wide from six yards.
As the hosts improved Steve Watson saw a header saved before a mistake from Linvoy Primus let in Radzinski and he crossed for Rooney to score.
Portsmouth, with Steve Stone, Lomana LuaLua, Richard Hughes and John Curtis coming into the side, started brightly and Arjan de Zeeuw had a close-range header blocked early on.
Everton struck back and Rooney and Duncan Ferguson teed up Kevin Kilbane who saw his 20-yard drive tipped over impressively by Shaka Hislop.
15 mins: Yakubu shot saved, Berkovic fires wide
58 mins: Radzinski slams wide
78 mins: Rooney blasts in
Pompey had two chances in quick succession to go ahead as Yakubu muscled Alan Stubbs off the ball but his shot was blocked by Nigel Martyn, with Berkovic firing the rebound wide.
Soon after Stone drilled a shot into the arms of Martyn before Kilbane had two more efforts, first seeing a shot saved before arrowing another left-foot effort past Hislop's left-hand post.
But Everton were lacking cohesion and - the determined Rooney apart - they were struggling to find their passing range.
Boss David Moyes was not helped when Ferguson picked up a knock and had to be replaced by Radzinski on the half hour.
Harry Redknapp took off the injured Lomano Tresor LuaLua at the break and sent on Matthew Taylor, with the youngster immediately providing the visitors with some width down the left.
Both teams looked most likely to score by pumping crosses into the oppositions' box, and Yakubu dragged a shot wide as Pompey continued to have the better of the play.
Everton could have taken the lead against the run of play 13 minutes into the half but Radzinski blazed wide from six yards after Gary Naysmith's cross was not properly cleared by de Zeeuw.
Watson then latched onto a long pass from Stubbs to send a header goalwards, but Hislop was equal to the challenge.
The hosts finally took the lead with 12 minutes to go.
Linvoy Primus lost possession to Radzinski and he fed Rooney, who fired past Hislop from inside the area.
Portsmouth had a late chance to rescue a point, but substitute Ivica Mornar headed over from a corner after the Everton defence had left him unmarked.
Everton: Martyn, Hibbert, Yobo, Stubbs, Naysmith, Watson, Nyarko, Linderoth, Kilbane, Ferguson (Radzinski 32), Rooney. Subs Not Used: Wright, Unsworth, McFadden, Carsley.
Portsmouth: Hislop, Pasanen, Primus, De Zeeuw, Curtis, Stone (Sheringham 80), Faye, Berkovic (Mornar 68), Hughes, LuaLua (Taylor 45), Yakubu. Subs Not Used: Wapenaar, Todorov.
Referee: N Barry (N Lincolnshire).