David Nugent struck the only goal of the game as Pompey recorded their third successive win to ease their relegation worries and push them towards mid-table.
Nugent volleyed home the match-winner in the 65th minute after Dave Kitson flicked on a long throw to enable his strike partner to thud a shot into the turf which looped over Crystal Palace keeper Julian Speroni.
The Blues could have taken a first-half lead as David Cotterill blazed over the crossbar when well placed. But it was an even encounter throughout the first 45 minutes.
But Pompey took control after the break and pushed on to deservedly grab a third successive win and a third straight clean sheet with another fine defensive display.