Izale McLeod scored twice as Portsmouth made it five league games unbeaten with victory over Shrewsbury.
After a goalless first half, McLeod found Wes Thomas, who rounded keeper Chris Weale to slide home, and then scored the second himself with a chip.
Marvin Morgan pulled one back from a rebound and was sent off moments later following a dispute with referee Fred Graham after a booking for the striker.
McLeod sealed the points in the last minute from a tight angle.
The result means in their 10 trips to Fratton Park, dating back 102 years, Shrewsbury have lost them all, shipping 29 goals and scoring just three - Mal Starkey in 1961, Steve Cross in 1983 and Morgan in 2012.
VIEWS FROM THE DRESSING ROOM
Portsmouth manager Michael Appleton told BBC Radio Solent:
"It wasn't the prettiest today, we've certainly played a lot better and lost games so far this season, but it was a game we would have lost probably six weeks ago.
"I thought we moved the ball a little bit quicker in the second half and we didn't do it quick enough in the first half.
"With good performances you get better results, I still stand by and say that hopefully come November we'll be playing much better and getting much better results.
"I think Shrewsbury played quite well today, they'll probably feel unfortunate to come away with nothing.
(On Portsmouth Supporters' Trust being named preferred bidder to purchase the club by administrators) "It'll probably be the middle or end of next week before we really sit down and talk seriously about the future of the football club, and hopefully we can be in a position before January or in January where we can actually sign players and take the club forward."
Shrewsbury Town manager Graham Turner told BBC Shropshire:
"There is no doubt we dominated the first half and we were by miles the better team but we can't concede goals to get them back into it.
"We then got ourselves back - but Marvin got sent off and we shouldn't have lost the game."
Sorry, we were unable to load match stats, please try again.