Town's nemesis David Nugent sent a battling Blues out of the FA Cup after Jim Magilton's side had played 70 minutes with 10 men.
Liam Trotter was harshly sent-off for a foul on Pedro Mendes midway through the first-half before Nugent got the only goal of the match early in the second-half.
It was the former Preston striker's seventh goal in six games against Blues and booked his side a place in the Fourth Round.
Jon Walters missed the game through flu, Jason De Vos ruled out with a rib injury. Billy Clarke and Fabian Wilnis coming in.
Hermann Hreidarsson was in the line-up for Portsmouth, the former Blue going close with a header on six minutes in the first opening of the game.
Pablo Counago and Clarke swapped passes around the Pompey box, the ball running through to David James. Neil Alexander then called into action to deny Glen Johnson. From the resultant corner Town broke but Danny Haynes overhit his pass that would have put Clarke in on goal.
Papa Bouba Diop headed at Alexander while Clarke ambitious effort from distance flew wide.
Counago was shackled by Sol Campbell from Sito's pass as both sides looked for a clear cut opening before controversy reigned on 23 minutes. Trotter's lunge at Mendes deemed worthy of a red card. The young midfielder clearly upset by the decision as he left the field.
The Town players surrounded referee Halsey as Blues were left to play three quarters of the game with 10 men.
The Blue Army were on their feet again seconds later when Counago went to ground outside the box under Campbell's challenge but no free-kick given.
David Wright tested James from distance, Owen Garvan's free-kick cleared by Campbell as Blues held their own against Premiership opposition.
Sito was in the right place to clear from John Utaka's cross, the Portsmouth striker then blasting wide from inside the Town box. Diop then shooting over from 18 yards.
It was Town who came closest to breaking the deadlock in the first-half though, Garvan's corner kicked off the line as Clarke challenged seconds before the break.
Pompey made a change at half-time, Nugent replacing Mendes.
James was at full stretch to save from Haynes' right footed effort, as Blues started the second-half brightly.
It was Pompey who drew first blood though, Campbell's pass sending Nugent clear on 50 minutes and he slid the ball past Alexander from 10 yards. Nico Kranjcar then testing the Town 'keeper from 18 yards.
Jaime Peters replaced Clarke in Town's first change just before the hour, the Canada international's first senior game for two months.
Nugent was inches away from a second goal on 63 minutes, the striker hooking the ball against the bar. Diop firing over from distance.
Counago, fighting a lone battle up front against Campbell and Sylvain Distin, let his frustration get the better of him on 70 minutes, picking up a yellow card for dissent.
Nwankwo Kanu blasted over from Nugent's pass as Pompey looked to settle the tie, Alexander then holding on to Diop's header from close range.
Harry Redknapp's side should have added to their lead 10 minutes from time, Utaka failing to convert from three yards with the goal open after Hreidarsson's shot had fallen to him.
Alan Lee replaced Gavin Williams for the closing stages as Town went two upfront in search for an equaliser, the striker immediately yellow carded for dissent after being penalised for a challenge on Campbell.
Haynes' shot fell to Counago four yards out but James cleared for a corner as Town pressed the Premiership side back, the Pompey 'keeper then flying to his right to save from Lee's header.
Hreidarsson was booked for a foul on Haynes, Richard Naylor then coming on for his first game since February, Sito making way.
James saved again brilliantly from Haynes as Town threw everything at the visitors but without the reward the effort deserved as Blues' 17 match unbeaten run at Portman Road came to an end.
The rousing reception given to the Town players at the final whistle showed what the fans thought of Magilton's brave battlers though.
Town: Alexander, Sito (Naylor 89), Bruce, Wilnis, Sito, Haynes, Williams (Lee 80), Garvan, Trotter, Clarke (Peters 58), Counago. Subs not used: Supple, Miller. Sent-off: Trotter. Booked: Counago, Lee.
Portsmouth: James, Johnson, Campbell, Distin, Hreidarsson, Mvuemba, Mendes (Nugent 46), Diop, Kranjcar, Kanu, Utaka. Subs not used: Lauren, Traore, Paramot, Begovic. Booked: Hreidarsson.
Att: 23,446












