Pompey strikers Yakubu Ayegbeni and Lomana LuaLua headed Portsmouth into a two-goal lead and although Ian Harte netted an 83rd minute penalty, Leeds were denied.
Simon Johnson, 21, made his first start of the season for Leeds alongside Alan Smith, with Mark Viduka suspended, while Portsmouth demoted Eyal Berkovic to the bench.
Pompey's Steve Stone had warned against being caught napping by the early kick-off, but it was the Leeds defenders who were guilty of falling asleep.
They were caught on the break in the ninth minute when Amdy Faye sent Stone racing down the right. He cut inside and his cross to the far post was headed just inside the upright by Yakubu, with the Leeds defence in disarray.
More suicidal defending went unpunished when Portsmouth skipper Arjan De Zeeuw lifted the ball high and wide from only six-yards.
Portsmouth survived an anxious moment when Michael Duberry reached Ian Harte's corner inside the six-yard box, but was off balance and could only hook wide.
Pompey looked much more assured on the ball, playing a patient cat and mouse game, while Leeds tried to force the issue and made too many errors.
Leeds captain Dominic Matteo had his mobility impaired by an infected toe, but his team improved towards the end of the first half and the ball struck Dejan Stefanovic on the elbow as Leeds and their fans howled in vain for a penalty.
Matteo failed to appear for the second half, Stephen McPhail taking over in midfield, and then Portsmouth increased their lead in the 50th minute from a needless corner given away by Duberry.
Matthew Taylor's flag kick from the left was headed down by De Zeeuw and LuaLua headed in at point-blank range.
The inexperienced Johnson was replaced by Nick Barmby just before the hour and with seven minutes left a linesman flagged for a foul on Duberry and Harte slotted the resultant penalty into the bottom left corner.
Three minutes later Shaka Hislop pulled off the save of the match to deny the lively Barmby an equaliser and possibly Leeds' hopes of survival.