They were totally on top against their Championship opponents in the opening 45 minutes and carved open a number of chances.
But it was the hosts who broke the deadlock through Tommy Oar early in the second half.
The Blues hit back, though, and Kyle Bennett levelled before substitute Conor Chaplin’s strike looked to have secured a cup upset.
But there was still time for Ryan Fraser to grab a late leveller and ensure that the sides will have to do it all again at Fratton Park.
Paul Cook made four changes from the side that beat Crawley in the league the previous week.
Gary Roberts was handed his first start for more than two months and wore the captain’s armband in the absence of Michael Doyle.
Matt Clarke was unable to feature against his parent club, so Adam Barton was once again used as a makeshift defender.
There were also starts for Adam McGurk and Ben Close, with Caolan Lavery ineligible and Gareth Evans dropping to the bench.
Former Pompey striker Luke Varney started for the hosts, while Roberts and Brian Murphy were both featuring against their former club.
The visitors might play their league football two divisions below the Tractor Boys, but they were certainly not over-award.
It was the Blues who dominated from the start and it took a vital block from Paul Digby to deny Marc McNulty in the opening stages.
McGurk then climbed above his marker to reach Roberts’ cross at the far post, only to see his header deflected wide.
Ipswich were struggling to see much of the ball and their supporters grew increasingly frustrated as the first half progressed.
Roberts should have done better when he connected with Enda Stevens’ cross on 20 minutes, but could only guide the ball over the bar.
The large travelling support were enjoying themselves, chanting ‘ole’ with every completed pass.
One such period of play ended with Barton sending McNulty clear, but Bartosz Bialkowski was quickly down to his right to palm clear the striker’s low drive.
The keeper was called into action again moments later, this time doing well to keep out a Bennett snap-shot from the edge of the box.
Ipswich finally threatened with a counter-attacking move just before the break, but Barton kept his composure to cut out Oar’s through ball.
Ipswich Town 0
The hosts, unsurprisingly, looked sharper at the start of the second half – no doubt following a few harsh words from Mick McCarthy.
And they forged ahead on 53 minutes when Ben Davies was unable to keep out Oar’s effort on the line after Murphy had done well to keep out an initial shot from Brett Pitman.
If the home support thought that would trigger a landslide, though, they were to be disappointed.
Not even two minutes had passed when Pompey deservedly drew level, as Roberts and McNulty combined to tee-up BENNETT for a cool finish into the bottom corner.
And they almost forged ahead on 65 minutes, with Bialkowski only just keeping out McNulty’s fierce strike at the near post.
The game was certainly an open affair by now, as both sides sought to avoid a replay by finding a second goal.
Cook made his first change on 74 minutes, withdrawing Close and handing Adam May just a third senior appearance.
And a second switch soon followed as the tiring Roberts made way for Chaplin in Pompey’s forward line.
The Blues were then forced into making a final change on 81 minutes when Danny Hollands picked up a knock and was replaced by Brandon Haunstrup.
Ipswich came close to grabbing a late winner moments later, with Fraser only able to find the side netting from a tight angle.
But it was the Blues who were celebrating on 86 minutes when CHAPLIN collected the ball 20 yards out and steered a precise shot right into the bottom corner.
There was still time for the hosts to hit back, though, as Fraser swung a free-kick straight into the net from wide on the left.
Five minutes of stoppage-time meant that both sides still had the chance to increase the scoring, but an exciting game was not able to deliver one last twist.
Ipswich (4-4-2): Bialkowski; Chambers (c), Malarczyk, Digby (Smith 63), Knudsen; Maitland-Niles (Fraser 58), Skuse, Hyam, Oar; Pitman, Varney (Sears 74)
Goals: Oar 53, Fraser 88
Subs not used: Gerken, Bru, Tabb, Kenlock
Pompey (4-2-3-1): Murphy; Davies, Barton, Webster, Stevens; Close (May 74), Hollands (Haunstrup 81); Roberts (c) (Chaplin 78), McNulty, Bennett; McGurk
Goals: Bennett 55, Chaplin 86
Subs not used: Bass, Boco, Tollitt, Evans
Referee: David Coote
Attendance: 17,020 (2,494 Pompey fans)