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.
Portsmouth assistant manager Leam Richardson told BSports 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 BSports 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.
Full Time Match ends, Portsmouth 2, Ipswich Town 1.
90:00 +4:32 Full timeFull Time Second Half ends, Portsmouth 2, Ipswich Town 1.
88:08 SubstitutionSubstitution Substitution, Ipswich Town. Joe Robinson replaces Ainsley Maitland-Niles.
87:16Foul by Gareth Evans (Portsmouth).
87:16Brett Pitman (Ipswich Town) wins a free kick on the left wing.
84:01 SubstitutionSubstitution Substitution, Portsmouth. Ben Close replaces Christian Burgess because of an injury.
80:44 SubstitutionSubstitution Substitution, Portsmouth. Conor Chaplin replaces Gary Roberts.
80:33Corner, Portsmouth. Conceded by Myles Kenlock.
78:49Kyle Bennett (Portsmouth) wins a free kick on the right wing.
78:49Foul by Joshua Emmanuel (Ipswich Town).
77:40Attempt missed. Adam Barton (Portsmouth) right footed shot from outside the box misses to the right.
76:54 DismissalDismissal Second yellow card to Piotr Malarczyk (Ipswich Town) for a bad foul.
76:44Gary Roberts (Portsmouth) wins a free kick in the attacking half.
76:44Foul by Piotr Malarczyk (Ipswich Town).
75:15 SubstitutionSubstitution Substitution, Ipswich Town. Larsen Touré replaces Luke Varney.
75:03Michael Doyle (Portsmouth) wins a free kick in the defensive half.
75:03Foul by Brett Pitman (Ipswich Town).
72:07Attempt missed. Brett Pitman (Ipswich Town) left footed shot from outside the box is close, but misses to the right.
70:52 SubstitutionSubstitution Substitution, Ipswich Town. Giles Coke replaces Jay Tabb.
62:37Foul by Gareth Evans (Portsmouth).
Tommy Oar (Ipswich Town) wins a free kick on the left wing.
59:32 Goal scoredGoal! Goal! Portsmouth 2, Ipswich Town 1. Ainsley Maitland-Niles (Ipswich Town) left footed shot from outside the box to the top right corner.
55:20Attempt missed. Gareth Evans (Portsmouth) right footed shot from outside the box is too high.
50:48Attempt missed. Michael Doyle (Portsmouth) left footed shot from outside the box misses to the left.
49:51Kyle Bennett (Portsmouth) wins a free kick in the defensive half.
49:51Foul by Joshua Emmanuel (Ipswich Town).
49:12Attempt missed. Marc McNulty (Portsmouth) right footed shot from the centre of the box is too high.
48:54Attempt saved. Marc McNulty (Portsmouth) right footed shot from the centre of the box is saved in the centre of the goal.
47:33Corner, Ipswich Town. Conceded by Adam Webster.
45:00Second Half begins Portsmouth 2, Ipswich Town 0.
45:00 +2:02 Half timeHalf Time First Half ends, Portsmouth 2, Ipswich Town 0.
45:00 +0:45Christian Burgess (Portsmouth) wins a free kick in the attacking half.
45:00 +0:45Foul by Brett Pitman (Ipswich Town).
45:00 +0:12Foul by Marc McNulty (Portsmouth).
45:00 +0:12Luke Hyam (Ipswich Town) wins a free kick in the attacking half.
39:25Foul by Kyle Bennett (Portsmouth).
39:25Jay Tabb (Ipswich Town) wins a free kick in the defensive half.
38:10Adam Webster (Portsmouth) wins a free kick in the attacking half.
38:10Foul by Brett Pitman (Ipswich Town).
36:45 Goal scoredGoal! Goal! Portsmouth 2, Ipswich Town 0. Marc McNulty (Portsmouth) header from very close range to the bottom left corner. Assisted by Gareth Evans.
35:38Attempt saved. Kyle Bennett (Portsmouth) left footed shot from outside the box is saved in the bottom right corner.
33:24Attempt missed. Luke Varney (Ipswich Town) header from the centre of the box misses to the left.
31:17 Goal scoredGoal! Goal! Portsmouth 1, Ipswich Town 0. Gary Roberts (Portsmouth) converts the penalty with a left footed shot to the bottom right corner.
30:28Penalty Portsmouth. Gary Roberts draws a foul in the penalty area.
30:28Penalty conceded by Piotr Malarczyk (Ipswich Town) after a foul in the penalty area.
30:01Attempt saved. Marc McNulty (Portsmouth) right footed shot from the centre of the box is saved in the bottom left corner.
27:00Adam Barton (Portsmouth) wins a free kick in the attacking half.
26:58Foul by Tommy Oar (Ipswich Town).
26:24Foul by Michael Doyle (Portsmouth).
26:24Luke Hyam (Ipswich Town) wins a free kick in the attacking half.
21:51Foul by Marc McNulty (Portsmouth).
21:51Piotr Malarczyk (Ipswich Town) wins a free kick on the left wing.
20:56Corner, Portsmouth. Conceded by Joshua Emmanuel.
20:41Attempt blocked. Gareth Evans (Portsmouth) header from the centre of the box is blocked.
18:39Attempt missed. Kyle Bennett (Portsmouth) right footed shot from outside the box is close, but misses to the left.
14:53Corner, Portsmouth. Conceded by Myles Kenlock.
14:18Corner, Portsmouth. Conceded by Luke Varney.
14:03Attempt blocked. Gary Roberts (Portsmouth) right footed shot from outside the box is blocked.
13:13 BookingBooking Piotr Malarczyk (Ipswich Town) is shown the yellow card for a bad foul.
13:00Marc McNulty (Portsmouth) wins a free kick in the defensive half.
12:52Foul by Piotr Malarczyk (Ipswich Town).
12:25Attempt blocked. Michael Doyle (Portsmouth) left footed shot from outside the box is blocked.
11:16Adam Barton (Portsmouth) wins a free kick on the right wing.
11:16Foul by Luke Varney (Ipswich Town).
9:14Adam Webster (Portsmouth) wins a free kick in the defensive half.
9:14Foul by Brett Pitman (Ipswich Town).
3:22Attempt missed. Brett Pitman (Ipswich Town) right footed shot from the centre of the box is too high.
2:52Foul by Adam Barton (Portsmouth).
2:52Brett Pitman (Ipswich Town) wins a free kick in the attacking half.
0:00First Half begins.
0:00Lineups are announced and players are warming up.
Live data and text provided by our data suppliers