Sean Davis came off the substitutes' bench to score his first goal in two-and-a-half years and hand Tony Adams his first home win as Portsmouth manager.
Davis ended his long drought 11 minutes from time and only two minutes after coming on to deny Blackburn a point after Paul Ince's strugglers had fought back from 2-0 down to make it 2-2.
Papa Bouba Diop's fierce right-foot shot was parried by Paul Robinson and the ball found its way to Davis, who kept his composure before cleverly chipping it over the grounded Blackburn goalkeeper and into the net.
Blackburn looked to have earned themselves a share of the spoils after strikes from substitute Matt Derbyshire and Tugay had cancelled out goals by Peter Crouch and Jermain Defoe.
All the action happened in the second half and a dull match sparked into life when Crouch gave Portsmouth the lead four minutes after the interval.
Glen Johnson delivered a pin-point right wing cross for Crouch to rise at the back post and nod past Robinson for his eighth goal of the campaign.
Defoe seemed to have put the game beyond Blackburn's reach when he doubled Portsmouth's lead in the 53rd minute.
Substitute Niko Kranjcar threaded a pass through the middle of the travelling defence and Defoe side-stepped Chris Samba before rolling the ball under the body of the onrushing Robinson.
Ince made an inspired substitute by bringing on Derbyshire for the ineffective Benni McCarthy and the England under-21 striker rewarded his manager by scoring with his first touch in the 62nd minute.
Morten Gamst Pedersen picked out Derbyshire with a brilliant first-time cross from the left and the substitute planted a looping header over Portsmouth goalkeeper David James and into the top right corner.
Blackburn were back on level terms five minutes later when Turkey international Tugay hammered an unstoppable 30-yard strike past James.
However, Davis had the last word as Pompey avoided a repeat of their midweek UEFA Cup draw at home to AC Milan when they fell victim to two late goals.