Portsmouth moved into the qualification places for the Uefa Cup after a win over a weakened Liverpool side.
Mwaruwari was alert and skilful enough to make Dudek pay for a misjudgement
Reds keeper Jerzy Dudek's misjudgement allowed Benjani Mwaruwari to chip over him and nod in for Pompey's opener.
Niko Kranjcar chested down a long ball and finished with aplomb as Pompey went further ahead before Boudewijn Zenden's shot hit the crossbar for Liverpool.
Sami Hyypia headed in as the Reds fought back but some stubborn defending helped Pompey to victory.
Pompey keeper and ex-Liverpool stopper David James had received an award before kick-off for recently breaking the Premiership clean sheet record.
James was also the unlikely catalyst in helping Pompey take the lead and livening up a dour affair.
He started a counter-attack which ended with Gary O'Neil's curled effort tipped round the post by Dudek.
James again launched a long kick which Dudek flapped at on the edge of his area and Mwaruwari pounced to put his side ahead.
Kranjcar, who had come on for Matthew Taylor, was left in acres of space as he chested down a long diagonal Lauren ball and slotted into the far corner with the outside of his right foot.
Krancjar finishes with aplomb after coming on as a substitute
Liverpool had left Steven Gerrard, Jamie Carragher, Daniel Agger, Peter Crouch, Pepe Reina and Javier Mascherano on Merseyside.
The Reds clearly had their eyes on the Champions League semi-final, second leg against Chelsea on Tuesday and the replacement were found wanting.
Liverpool had only a Zenden half-volley, which rattled the crossbar, to show for their efforts in the first half.
Pompey had a chance to put the game out of reach after the break but Dudek saved well from Mwaruwari from a tight angle.
The visitors had more intent about them in the second half and were rewarded when Hyypia headed in a Robbie Fowler corner.
Pompey were forced on to the backfoot and two last-ditch tackles from Glen Johnson on Craig Bellamy proved crucial.
The win was even more satisfying as Pompey's close rivals Everton and Bolton had earlier dropped points.
Portsmouth first-team coach Joe Jordan:
"We've done well at home. Normally Fratton Park is a difficult place for teams to come and no more so than this season.
"We didn't play as well as when we beat Manchester United here recently getting the two goal lead was a bonus.
"We managed to hang on and Liverpool came back at strongly but, overall, I think we just sneaked it."
Liverpool boss Rafael Benitez:
"I'm disappointed. In the first half we had control and two chances on the counter-attack.
"After we conceded two stupid goals from two mistakes, we needed to improve.
"We did so in the second half and the team was much better for us. I think we deserved more."
Portsmouth: James, Johnson, Primus, Stefanovic, Traore, O'Neil, Lauren, Hughes, Taylor (Kranjcar 21), Kanu (LuaLua 71), Mwaruwari (Davis 90).
Subs Not Used: Ashdown, Mvuemba.
Goals: Mwaruwari 27, Kranjcar 32.
Liverpool: Dudek, Arbeloa, Hyypia, Paletta, Insua, Sissoko (El Zhar 83), Alonso, Zenden, Gonzalez (Pennant 67), Fowler, Bellamy.
Subs Not Used: Padelli, Kuyt, Hobbs.
Goals: Hyypia 59.
Ref: P Walton (Northamptonshire).