LIAM Lawrence's 78th minute penalty was enough to seal victory for Portsmouth at The Den and consign Millwall to their second home defeat of the season.
Manager Kenny Jackett named an unchanged starting XI from the side which beat Crystal Palace 1-0 at Selhurst Park on Saturday, Millwall's first Championship victory since late August.
Portsmouth's well-documented financial problems and resulting lack of personnel meant they could name only five substitutes as opposed to the Lions' full allocation of seven.
The first half chance fell the home side's way inside the opening minute but Steve Morison placed his shot from the edge of the area well wide of Jamie Ashdown's post.
Carl Dickinson was booked for cynically hauling down Chris Hackett as he led a Millwall counter attack on five minutes.
Hackett's 10th minute free-kick into the danger zone picked out Darren Carter but his low drive lacked power and conviction, enabling Ashdown to make a comfortable stop.
But the game became distinctly scrappy from this point, so much so that it took until the 32nd minute for anything remotely interesting to happen when Tamika Mkandawire was booked for a late challenge on Dave Kitson.
John Utaka fired straight at David Forde one minute later, while David Nugent blazed an effort wildly off target as Pompey began to look a bit lively at last.
Lawrence stepped up to take a 38th minute free-kick 25 yards from goal but it didn't trouble Forde and went harmlessly behind.
But the Millwall keeper had a lucky escape five minutes later when he dropped Lawrence's corner and his blushes were only spared when Tony Craig made a long cleared the danger.
Nugent should have done better in first half stoppage time when he easily brushed off Paul Robinson before bearing down on goal but he took to long to take a shot and his eventual effort was blocked as the opening period ended scoreless.
Jackett made one change at the start of the second half by bringing on Liam Trotter for Mkandawire.
But it was Pompey who looked the brighter in the opening minutes as Utaka dispossessed Scott Barron and played in a low cross which Nugent failed to make the most of.
It was Utaka's turn to squander an opportunity on 50 minutes when he fired over from inside the area before Kitson volleyed over two minutes later.
Millwall were awarded a free-kick just outside of the Pompey area when Craig was sent crashing to the ground by Ibrahima Sonko.
Barron's free-kick landed at the feet of Hackett 18 yards out and his shot took a deflection in a packed penalty area before being headed onto the post by Trotter, easily the closest Millwall had come to scoring so far.
At the other end Kitson attempted a cheeky lob of Forde but the effort went wide but Millwall should have gone in front just after the hour when Carter fired over the bar from six yards.
Alan Dunne came on for Craig and almost made an instant contribution with a stunning 20 yard shot which hit the bar with Ashdown beaten.
Nugent and Morison both shot straight at the keeper as the game continued to swing from end to end in a far more exciting second half than the opening one.
Kevin Lisbie was introduced with 18 minutes left to replace Theo Robinson but Pompey were gifted a penalty six minutes later when Hackett fouled Nugent as he broke into the area and referee Andy Woolmer pointed straight to the spot.
Lawrence kept his cool despite the boos from the home fans to smash a perfect penalty past Forde and give Pompey a lead they probably just about deserved.
Millwall were now looking for an equaliser instead of chasing the game and came close in the 83rd minute when Darren Ward's shot was tipped behind by Ashdown at the expense of a corner.
But that was as close as they came and Portsmouth ran down the clock to collect the three points.
Millwall: Forde, Barron, P Robinson, Ward, Craig (Dunne 62), Hackett, Mkandawire (Trotter 46), Abdou, Carter, Morison, T Robinson (Lisbie 72). Subs not used: Mildenhall, Schofield, Harris, Henry.
Comments: Our rules
We want our comments to be a lively and valuable part of our community - a place where readers can debate and engage with the most important local issues. The ability to comment on our stories is a privilege, not a right, however, and that privilege may be withdrawn if it is abused or misused.
Please report any comments that break our rules.
Read the rules here