Nottingham Forest started the brighter of the two sides and after only three minutes Andy Reid floated a ball into Danny Sonner who managed to hit the post from only one yard out.
On 14 minutes Forest had a free-kick just outside the area but Sonner hit low into the defensive wall as the home side continued to dominate.
A mistake by Des Walker almost let in Portsmouth at the other end but the shot was deflected. The game was now becoming a little scrappy with both sides cancelling out each other.
On 36 minutes, Marlon Harewood put the ball into the net but must have been at least a yard offside and the officials rightly chalked the goal off.
Five minutes later Mathieu Louis-Jean hit a pinpoint cross from the right, the ball finding Eugen Bopp who smashed the ball from inside the box to put Forest ahead.
After the break Pompey's Patrik Berger saw a free-kick well saved by Darren Ward, as the game began to hot up.
The visitors then equalised when Sebastien Schemmel fired over a cross that managed to miss all players with the exception of Walker who deflected it into his own goal.
Portsmouth proved to be a handful in the second half after scoring their equaliser, with Berger a constant threat.
Yakubu Ayegbeni then made it 2-1 to the visitors with a thunderbolt from ten yards out after 64 minutes, only for Bopp to fire home a Harewood croos to three minutes later to send the game into extra time.
In extra-time Pompey dominated proceedings with Jason Roberts putting them ahead in the 101st minute, before Ayegbeni made sure of victory with a powerful low shot seven minutes later.
Forest pushed their Premiership opponents all the way but in the end Portsmouth proved to be far too strong in the additional 30 minutes.