Pompey secured back-to-back victories after goals from Izale McLeod and Gabor Gyepes condemned the Somerset side to a sixth successive defeat.
Portsmouth dominated the first half and deservedly took the lead after 13 minutes when McLeod latched on to Wes Thomas' through-ball to lash a right-footed drive past goalkeeper Marek Stech.
The lively McLeod twice came close to doubling the visitors' advantage in the first half, before Thomas fired wide and Jon Harley's effort was ruled out for offside. Referee Chris Foy waved away a penalty appeal from the home side shortly before the break when Keanu Marsh-Brown fell under a challenge from Thomas.
The hosts did equalise after 69 minutes when Nathan Ralph was fouled in the box by Lee Williamson, with Reuben Reid coolly converting the penalty.
However, Portsmouth secured the three points nine minutes later when defender Gyepes steered the ball past Stech to score his second goal in two games.