Fowler scored in his final appearance of the season
Liverpool ended the Premiership season with their ninth straight league win.
But it was not enough to snatch second place from Manchester United, who beat Charlton, while Xabi Alonso injured his ankle and is an FA Cup final doubt.
Robbie Fowler scored with a left-footed strike from the edge of the area, while Peter Crouch converted from five yards.
Ognjen Koroman pulled a goal back, slotting home Wayne Routledge's cross, before Djibril Cisse scored after Crouch had played him through.
With Pompey safe and Liverpool six days from the FA Cup final it was match that at times lacked any sense of urgency - and there was no hint of the three goals in a five-minute burst towards the end.
Rafael Benitez had made five changes from the team that defeated Aston Villa last weekend but his much-changed line-up did not take long to find their rhythm.
Liverpool dominated possession in the opening phase of the match, their measured control of the football in stark contrast to Portsmouth's quick and direct approach.
Mohamed Sissoko should have scored in only the third minute but headed a corner wide despite finding himself completely unmarked.
A wonderful 50-yard raking pass from John Aarne Riise played Steven Gerrard through but Dean Kiely charged out of his goal and smothered the midfielder's shot.
Pompey finally threatened in first-half injury time but Benjani's weak header was comfortably saved by Jerzy Dudek.
And undoubtedly the greatest moment of drama in the opening half came when Alonso was stretchered from the field after 42 minutes.
The Spaniard landed awkwardly, twisting his right ankle after jumping to bring the ball under control.
As Alonso received treatment Matthew Taylor was booked for back chat to referee Graham Poll.
If Liverpool knew at the start of the second half that, with United leading Charlton 3-0, their chances of capturing second place were all but over there was no evidence of it in their body language.
And within minutes of the restart Fowler slotted the Reds ahead from 18 yards with a precise finish after taking one touch to bring the ball under control.
Pompey attempted to find the goal that would ensure they continued their fine run of just one defeat in their previous nine games.
Gerrard made an excellent block to deny Koroman - but it was Liverpool who scored the second goal.
Kiely got a hand to Cisse's low cross but could only divert the ball into the path of Crouch, who slotted home from five yards.
Pompey refused to admit defeat, however, and Koroman finished neatly at the far post from Routledge's dangerous cross before Cisse slotted the ball past Kiely to conclude an action-packed finale to the match.
Portsmouth manager Harry Redknapp:
"By half time they had about one chance and I thought we would go out and win the game.
"Overall I thought that we played OK and that 3-1 was a bit flattering for Liverpool, though they are a good side.
"The fans have been fantastic this season and pushed us on. It has been a terrific end to the season."
Liverpool manager Rafael Benitez on failing to snatch second:
"We knew it would be difficult. We needed to do our job but Manchester United have done their job.
"We were waiting (on scores) but we know that United are a very good team.
"We are happy with the season. The team and the squad is better - we can manage different games and keep winning."
Portsmouth: Kiely, Priske, Primus (Pamarot 86), Stefanovic, Taylor, O'Neil, Davis, Hughes (Koroman 62), D'Alessandro (Routledge 68), Mwaruwari, Todorov.
Subs Not Used: Ashdown, Pericard.
Goals: Koroman 85.
Liverpool: Dudek, Finnan, Carragher, Hyypia, Riise, Gerrard, Alonso (Kromkamp 41), Sissoko, Kewell, Morientes (Crouch 67), Fowler (Cisse 83).
Subs Not Used: Reina, Traore.
Goals: Fowler 52, Crouch 84, Cisse 89.
Ref: G Poll (Hertfordshire).