Paul Dickov scored the winner as Blackburn came from behind to record their third victory in eight days. Matthew Taylor put Portsmouth ahead early on with a spectacular free-kick, but Morten Gamst Pedersen equalised with another brilliant strike.
Dickov struck with a header after Sander Westerveld parried a long-range strike from Steven Reid.
Robbie Savage for Blackburn and Portsmouth's Lomana LuaLua both missed good chances after the break.
The win lifts Rovers into eighth in the Premiership table - their highest position under Mark Hughes.
But Pompey miss out on the chance to haul themselves out of the relegation zone and remain third bottom.
Portsmouth took the lead after just three minutes, though Blackburn had been the first to threaten.
Reid forced Westerveld into action with a well-struck free-kick from 30 yards.
But it paled into insignificance compared with Taylor's sumptuous curling strike that eluded Brad Friedel's outstretched dive - though the foul for a handball against Ryan Nelsen was questionable.
If Rovers felt wronged, it did not take them long to restore parity - Pedersen's left-footed strike from a similar position to Taylor's flying over the wall and into the top corner.
The free-kick had been given after Andy O'Brien was adjudged to have fouled Dickov as the two players tussled for the ball, but again it was a marginal decision.
After a spectacular opening, the match became more attritional - with Salif Diao and Aliou Cisse booked for late tackles as both teams battled for supremacy in midfield.
 Taylor put Portsmouth ahead |
Rovers gradually enjoyed more and more possession and seven minutes before the break Dickov reacted quickest to head home from a tight angle after Westerveld's parry.
Harry Redknapp introduced Svetoslav Todorov for the second-half, but it was the home team who threatened first, Savage narrowly missing with a free-kick.
Pompey won a succession of corners and did have the ball in the net after an impudent backheel from LuaLua, but the striker was yards offside.
Hughes introduced Craig Bellamy and Brett Emerson to try and counter Pompey's increasing threat.
And Savage should have scored after connecting with a teasing Bellamy cross, but instead directed his shot over Westerveld's goal.
LuaLua was equally guilty of a poor miss, scuffing his strike when unmarked after Todorov picked him out.
Friedel then saved from Taylor and O'Brien headed wide as Blackburn held on.
Blackburn boss Mark Hughes:
"This is a good period for Blackburn and I'm delighted with another three points," said Hughes. "There was a real desire to get the job done and another three points go a long way to getting us where we want to be.
"We have set high standards and we are on track but we must make sure we continue in the same vein."
Portsmouth boss Harry Redknapp:
"I thought that in the second half we did well and had some good opportunites to have perhaps got something from the games. "This is not an easy place to come but we matched them and I cannot fault the effort of my players.
"We are doing OK. We have picked up seven points from six games, whereas before I came here we had 10 from 15."
Blackburn: Friedel, Neill, Khizanishvili, Nelsen, Matteo, Bentley (Emerton 66), Savage, Reid, Pedersen, Kuqi (Tugay 90), Dickov (Bellamy 66).
Subs Not Used: Enckelman, Mokoena.
Booked: Pedersen.
Goals: Pedersen 9, Dickov 39.
Portsmouth: Westerveld, Priske, O'Brien, Stefanovic, Griffin, O'Neil, Diao, Cisse (Robert 76), Taylor (Karadas 82), LuaLua, Silva (Todorov 45).
Subs Not Used: Viafara, Guatelli.
Booked: Diao, Cisse, Stefanovic, Griffin.
Goals: Taylor 3.
Att: 19,521
Ref: M Dean (Wirral).