Portsmouth's hard-earned victory kept Palace bottom of the Premiership.
Ricardo Fuller fired Pompey ahead after three minutes from Yakubu's pass, but Danny Granville's header put Palace level three minutes before half-time.
Patrik Berger's 25-yard shot was deflected in by Palace keeper Julian Speroni after 46 minutes, before Shaka Hislop saved Andy Johnson's penalty.
And Palace's misery was complete five minutes from time when Tony Popovic put Steve Stone's cross into his own net.
It leaves Palace already facing a desperate battle to survive, but Portsmouth will be buoyed by their early-season form at Fratton Park.
Pompey new boy Fuller is keen to prove his worth in the Premiership, and he was on the mark to give Harry Redknapp's side an early lead.
Nigel Quashie received a short corner on the edge of the box, but was brought down as he attempted to skip past Aki Riihilahti.
It should have been a penalty, but it made no difference as Yakubu squared for Fuller to finish.
Portsmouth suffered a blow after 12 minutes when captain Arjan de Zeeuw limped off to be replaced by Matthew Taylor.
Palace were being over-run in midfield, but almost clawed their way back into the game when Granville's 25-yard free-kick bounced to safety off the woodwork.
But Granville had better luck three minutes before the interval when he arrived unmarked to head Wayne Routledge's corner past Hislop.
Palace failed to hold the lead for long, Portsmouth going back in front after 46 minutes.
Berger's long-range shot was powerful, but it appeared to be going wide until the hapless Speroni diverted the ball in.
And Palace were cursing again, first when Johnson had a goal ruled out for offside, and then when the striker Johnson saw a penalty saved by Hislop after 54 minutes.
The spot-kick was awarded when Hungaria striker Sandor Torghelle was upended by Linvoy Primus.
Johnson's penalty was poorly directed and Hislop saved in some comfort.
Palace battled on gamely, but they lack real quality and their misery was complete when Popovic freakishly deflected Stone's cross past Speroni.
Portsmouth: Hislop, Primus, De Zeeuw (Taylor 12), Stefanovic,
Unsworth, Stone, Quashie, Berger, Berkovic (Faye 62), Yakubu,
Fuller (Kamara 54).
Subs Not Used: Ashdown, LuaLua.
Goals: Fuller 3, Berger 47, Popovic 85 og.
Crystal Palace: Speroni, Boyce, Hudson, Popovic, Granville,
Routledge (Derry 86), Riihilahti (Hughes 86), Hall,
Kolkka (Ventola 70), Johnson, Torghelle.
Subs Not Used: Kiraly, Powell.
Booked: Hall, Derry.
Goals: Granville 43.
Ref: P Dowd (Staffordshire).