Match ends, Portsmouth 2, Ipswich Town 1.
League Two Portsmouth booked a home FA Cup tie with Premier League Bournemouth after deservedly upsetting Ipswich in a third-round replay.
Gary Roberts put Portsmouth ahead with a penalty after he was fouled by Piotr Malarczyk before Marc McNulty headed in unmarked for the hosts' second.
Ainsley Maitland-Niles pulled one back for the Championship side with a curling shot after the break.
But a comeback was snuffed out when Malarczyk was sent off on 77 minutes.
The Town defender saw red following a second bookable offence on Roberts.
Victory was Portsmouth's first in an FA Cup tie against a side at least two divisions above them since a 5-2 win against Birmingham City in the first round in January 1909.
Defeat for Ipswich was their third in a row in an FA Cup tie against a side ranked below them.
Watched on by Bournemouth manager Eddie Howe and his assistant Jason Tindall, Portsmouth created the bulk of the early chances before former Ipswich midfielder Roberts' spot kick.
Ipswich manager Mick McCarthy made 11 changes to his starting line-up and for vast periods of the game Portsmouth looked the side two divisions higher in the Football League pyramid.
They deservedly added a second after 37 minutes when McNulty headed home firmly from Gareth Evans' cross.
The visitors' only shot on target on the night resulted in a goal from Arsenal loanee Maitland-Niles, who picked out the top-left corner from the edge of the box.
But Portsmouth could and should have won by more. McNulty, himself on a season-long loan from Sheffield United, was denied in either half by smart one-on-one saves from Ipswich goalkeeper Bartosz Bialkowski.
Ipswich's only other chance of note saw Brett Pitman blaze a half-volley over the crossbar from the edge of the area.
What the managers said...
Portsmouth assistant manager Leam Richardson told BBC Radio Solent: "When we went to Ipswich in the first game, we thought we gave a good account of ourselves so to get ourselves through, it's a great credit to our lads.
"I think the key was the application, the work-rate, the respect that you must have against the opponents on the pitch, that all came through in the performance.
"I think the lads did a good job tonight. The standard that we've set, we thought we could give a good account of ourselves and push Ipswich.
"Tonight the ground's full of people paying to get in and to reward them with a home tie against a Premier League side is something we can look forward to."
Ipswich Town manager Mick McCarthy told BBC Suffolk: "I thought Portsmouth played well again tonight and deserved to win. I think that we've given barmy goals away to be honest with you.
"You're never going to play against anybody if you give goals like that away. We were better in the second half, but we gave away two pretty routine goals.
"Tonight's confirmed to me what I probably already know - that the best side is the one that's been playing regularly.
"With Christophe Berra with a shoulder injury and Luke Chambers with a calf strain, I need them this Saturday and to be in those play-offs. I need to have the best team playing week in, week out. Unfortunately, that's why some of them had to play tonight.
"Did any of them give me a problem about picking my team over the next few weeks? I don't think so, but I know the ones who are capable of playing."
Portsmouth host third-placed Oxford, who are two places above them in League Two, on Saturday, while Ipswich are away at fellow play-off challengers Birmingham in the Championship on the same day.
- 6BurgessSubstituted forCloseat 85'minutes
- 11RobertsSubstituted forChaplinat 81'minutes
- 21MalarczykBooked at 77mins
- 7Maitland-NilesSubstituted forRobinsonat 89'minutes
- 18TabbSubstituted forCokeat 71'minutes
- 42VarneySubstituted forToureat 76'minutes
- Andy Woolmer
- Shots on Target
Second Half ends, Portsmouth 2, Ipswich Town 1.
Substitution, Ipswich Town. Joe Robinson replaces Ainsley Maitland-Niles.
Foul by Gareth Evans (Portsmouth).
Brett Pitman (Ipswich Town) wins a free kick on the left wing.
Substitution, Portsmouth. Ben Close replaces Christian Burgess because of an injury.
Substitution, Portsmouth. Conor Chaplin replaces Gary Roberts.
Corner, Portsmouth. Conceded by Myles Kenlock.
Kyle Bennett (Portsmouth) wins a free kick on the right wing.
Foul by Joshua Emmanuel (Ipswich Town).
Attempt missed. Adam Barton (Portsmouth) right footed shot from outside the box misses to the right.
Second yellow card to Piotr Malarczyk (Ipswich Town) for a bad foul.
Gary Roberts (Portsmouth) wins a free kick in the attacking half.
Foul by Piotr Malarczyk (Ipswich Town).
Substitution, Ipswich Town. Larsen Touré replaces Luke Varney.
Michael Doyle (Portsmouth) wins a free kick in the defensive half.
Foul by Brett Pitman (Ipswich Town).
Attempt missed. Brett Pitman (Ipswich Town) left footed shot from outside the box is close, but misses to the right.
Substitution, Ipswich Town. Giles Coke replaces Jay Tabb.
Foul by Gareth Evans (Portsmouth).