Striker Daryl Murphy scored twice as Ipswich Town extended their unbeaten run to six Championship games with victory at Charlton Athletic.
The Republic of Ireland international headed Mick McCarthy's side ahead from close range after a goalmouth scramble.
Freddie Sears fired in the second in first-half stoppage time for his first goal in 12 games before Murphy slotted in the visitors' third.
Dean Gerken twice saved from Ricardo Vaz Te late on as Charlton went close.
Substitute Reza Ghoochannejhad also headed just wide from Chris Solly's pin-point cross in stoppage time but by then Ipswich's victory was already assured.
The Tractor Boys have taken 12 points from their last six games and have now won three of their last four, while Charlton have won just one of their last seven home fixtures.
Charlton began the game buoyed by back-to-back wins over Sheffield Wednesday and Birmingham and started brightly.
But they struggled to create chances against a resolute Ipswich defence and fell behind when Tommy Smith headed back across goal following a sustained spell of pressure and Murphy nodded in.
Sears raced on to Luke Chambers' pass to fire in the second with the aid of a deflection off Addicks defender Patrick Bauer.
And Murphy sealed victory with a low shot past Stephen Henderson following a neat dummy by Brett Pitman and a precise pass from Jonathan Douglas.
Charlton interim boss Karel Fraeye: "There was a foul leading up to the first goal.
"We started very aggressively to try and get a goal. All the statistics are in our favour except for one.
"It seems unbelievable that we did not score and they got three goals in this game.
"The first goal was important and this one should never have been allowed because there was a clear foul and that proved decisive.
"The second and third goals did not look good for us but things were against us."
Ipswich manager Mick McCarthy: "Freddie [Sears] was diligent in his work in tracking the full-back and then caused all sorts of problems.
"Freddie has been selfless, a proper pro in the way he has gone about his business.
"I was more relieved than Freddie was when he scored his goal because as much as I say to him after every game 'well done, you're brilliant, I love what you're doing', all he wants to do is score."
Full Time Match ends, Charlton Athletic 0, Ipswich Town 3.
90:00 +4:07 Full timeFull Time Second Half ends, Charlton Athletic 0, Ipswich Town 3.
90:00 +3:47Corner, Ipswich Town. Conceded by Patrick Bauer.
90:00 +2:57Attempt missed. Reza Ghoochannejhad (Charlton Athletic) header from the centre of the box misses to the right. Assisted by Chris Solly with a cross.
90:00 +2:19Corner, Charlton Athletic. Conceded by Jonas Knudsen.
90:00 +0:34Naby Sarr (Charlton Athletic) wins a free kick in the attacking half.
90:00 +0:34Foul by Brett Pitman (Ipswich Town).
89:34 SubstitutionSubstitution Substitution, Ipswich Town. Tommy Oar replaces Freddie Sears.
85:50Attempt saved. Ricardo Vaz Te (Charlton Athletic) right footed shot from outside the box is saved in the bottom right corner. Assisted by Reza Ghoochannejhad.
85:05Ademola Lookman (Charlton Athletic) wins a free kick in the defensive half.
85:05Foul by Giles Coke (Ipswich Town).
84:36Foul by Naby Sarr (Charlton Athletic).
84:36Giles Coke (Ipswich Town) wins a free kick on the right wing.
83:17 SubstitutionSubstitution Substitution, Ipswich Town. Giles Coke replaces Ainsley Maitland-Niles.
83:14Delay over. They are ready to continue.
80:30Delay in match Ricardo Vaz Te (Charlton Athletic) because of an injury.
80:18Attempt saved. Ricardo Vaz Te (Charlton Athletic) header from very close range is saved in the bottom right corner. Assisted by Ademola Lookman with a cross.
79:36Corner, Charlton Athletic. Conceded by Ainsley Maitland-Niles.
78:52Attempt saved. Patrick Bauer (Charlton Athletic) header from very close range is saved in the centre of the goal. Assisted by Reza Ghoochannejhad with a headed pass.
78:21Jordan Cousins (Charlton Athletic) wins a free kick in the attacking half.
Foul by Freddie Sears (Ipswich Town).
76:02Attempt saved. Brett Pitman (Ipswich Town) right footed shot from outside the box is saved in the top centre of the goal. Assisted by Jonathan Douglas.
75:01Offside, Charlton Athletic. Stephen Henderson tries a through ball, but Ricardo Vaz Te is caught offside.
74:28Ademola Lookman (Charlton Athletic) wins a free kick on the left wing.
74:28Foul by Luke Chambers (Ipswich Town).
72:55Ademola Lookman (Charlton Athletic) wins a free kick in the attacking half.
72:55Foul by Cole Skuse (Ipswich Town).
72:17 SubstitutionSubstitution Substitution, Charlton Athletic. Reza Ghoochannejhad replaces Simon Makienok.
71:41Simon Makienok (Charlton Athletic) wins a free kick in the defensive half.
71:41Foul by Christophe Berra (Ipswich Town).
70:38Foul by Simon Makienok (Charlton Athletic).
70:38Christophe Berra (Ipswich Town) wins a free kick in the defensive half.
70:04Attempt missed. Christophe Berra (Ipswich Town) header from the centre of the box is high and wide to the right. Assisted by Ainsley Maitland-Niles with a cross following a corner.
69:31Corner, Ipswich Town. Conceded by Naby Sarr.
67:35 Goal scoredGoal! Goal! Charlton Athletic 0, Ipswich Town 3. Daryl Murphy (Ipswich Town) left footed shot from the left side of the box to the bottom right corner. Assisted by Jonathan Douglas.
65:03Delay in match Ricardo Vaz Te (Charlton Athletic) because of an injury.
64:25Delay in match Cole Skuse (Ipswich Town) because of an injury.
62:50 BookingBooking Simon Makienok (Charlton Athletic) is shown the yellow card for a bad foul.
62:11Foul by Simon Makienok (Charlton Athletic).
62:11Christophe Berra (Ipswich Town) wins a free kick in the defensive half.
60:53Attempt blocked. Ricardo Vaz Te (Charlton Athletic) right footed shot from outside the box is blocked. Assisted by Tareiq Holmes-Dennis.
60:07Corner, Charlton Athletic. Conceded by Tommy Smith.
58:40Offside, Ipswich Town. Tommy Smith tries a through ball, but Daryl Murphy is caught offside.
56:49Chris Solly (Charlton Athletic) wins a free kick on the right wing.
56:49Foul by Cole Skuse (Ipswich Town).
55:52Foul by Jordan Cousins (Charlton Athletic).
55:52Jonas Knudsen (Ipswich Town) wins a free kick in the defensive half.
54:32Delay over. They are ready to continue.
53:47Delay in match Christophe Berra (Ipswich Town) because of an injury.
52:02Attempt saved. Ricardo Vaz Te (Charlton Athletic) left footed shot from outside the box is saved in the bottom left corner. Assisted by Johann Berg Gudmundsson.
50:23Attempt missed. Daryl Murphy (Ipswich Town) left footed shot from outside the box misses to the left. Assisted by Jonathan Douglas.
46:42Offside, Charlton Athletic. Stephen Henderson tries a through ball, but Simon Makienok is caught offside.
45:00Second Half begins Charlton Athletic 0, Ipswich Town 2.
45:00 SubstitutionSubstitution Substitution, Charlton Athletic. Ricardo Vaz Te replaces Morgan Fox.
45:00 +5:28 Half timeHalf Time First Half ends, Charlton Athletic 0, Ipswich Town 2.
45:00 +4:36 BookingBooking Morgan Fox (Charlton Athletic) is shown the yellow card for a bad foul.
45:00 +4:23Foul by Morgan Fox (Charlton Athletic).
45:00 +4:23Ainsley Maitland-Niles (Ipswich Town) wins a free kick on the right wing.
45:00 +3:55Attempt missed. Ademola Lookman (Charlton Athletic) right footed shot from outside the box misses to the right. Assisted by Morgan Fox following a corner.
45:00 +3:26Corner, Charlton Athletic. Conceded by Jonathan Douglas.
45:00 +3:11Attempt missed. Ademola Lookman (Charlton Athletic) right footed shot from the right side of the box misses to the left. Assisted by Jordan Cousins.
45:00 +1:59 Goal scoredGoal! Goal! Charlton Athletic 0, Ipswich Town 2. Freddie Sears (Ipswich Town) right footed shot from the right side of the box to the bottom right corner. Assisted by Luke Chambers.
45:00 +1:19Foul by Simon Makienok (Charlton Athletic).
45:00 +1:19Luke Chambers (Ipswich Town) wins a free kick in the defensive half.
39:01Corner, Charlton Athletic. Conceded by Tommy Smith.
38:35Corner, Charlton Athletic. Conceded by Cole Skuse.
37:37Jordan Cousins (Charlton Athletic) wins a free kick on the right wing.
37:37Foul by Jonas Knudsen (Ipswich Town).
36:08Attempt saved. Jordan Cousins (Charlton Athletic) header from the centre of the box is saved in the top right corner. Assisted by Morgan Fox with a cross.
34:58Attempt missed. Jonathan Douglas (Ipswich Town) header from the centre of the box misses to the left. Assisted by Daryl Murphy with a cross.
31:41Delay over. They are ready to continue.
30:31Delay in match Cole Skuse (Ipswich Town) because of an injury.
30:31Delay in match Simon Makienok (Charlton Athletic) because of an injury.
28:49Attempt saved. Ademola Lookman (Charlton Athletic) left footed shot from a difficult angle on the left is saved in the centre of the goal. Assisted by Jordan Cousins.
28:34Attempt blocked. Jordan Cousins (Charlton Athletic) right footed shot from outside the box is blocked. Assisted by Ademola Lookman.
27:20 Goal scoredGoal! Goal! Charlton Athletic 0, Ipswich Town 1. Daryl Murphy (Ipswich Town) header from very close range to the high centre of the goal. Assisted by Tommy Smith with a headed pass following a corner.
27:01Attempt saved. Freddie Sears (Ipswich Town) right footed shot from the left side of the box is saved in the centre of the goal. Assisted by Brett Pitman.
26:59Attempt missed. Brett Pitman (Ipswich Town) left footed shot from outside the box misses to the left. Assisted by Freddie Sears following a corner.
26:25Corner, Ipswich Town. Conceded by Patrick Bauer.
25:40Attempt missed. Ademola Lookman (Charlton Athletic) right footed shot from outside the box misses to the left. Assisted by Stephen Henderson.
23:41Delay over. They are ready to continue.
23:02Delay in match Johann Berg Gudmundsson (Charlton Athletic) because of an injury.
22:31Attempt missed. Tareiq Holmes-Dennis (Charlton Athletic) right footed shot from outside the box misses to the left.
18:59Attempt missed. Daryl Murphy (Ipswich Town) right footed shot from outside the box misses to the left. Assisted by Christophe Berra.
18:31Foul by Ademola Lookman (Charlton Athletic).
18:31Christophe Berra (Ipswich Town) wins a free kick in the defensive half.
18:11Attempt saved. Freddie Sears (Ipswich Town) right footed shot from the centre of the box is saved in the centre of the goal.
16:36Johann Berg Gudmundsson (Charlton Athletic) wins a free kick on the left wing.
16:36Foul by Cole Skuse (Ipswich Town).
16:24Attempt blocked. Jonathan Douglas (Ipswich Town) header from the centre of the box is blocked.
15:53Corner, Ipswich Town. Conceded by Morgan Fox.
12:33 SubstitutionSubstitution Substitution, Charlton Athletic. Chris Solly replaces Johnnie Jackson because of an injury.
12:12Delay over. They are ready to continue.
11:26Delay in match Johnnie Jackson (Charlton Athletic) because of an injury.
10:50Attempt missed. Daryl Murphy (Ipswich Town) header from the centre of the box is close, but misses to the left. Assisted by Brett Pitman with a cross.
9:58Attempt saved. Brett Pitman (Ipswich Town) right footed shot from outside the box is saved in the centre of the goal. Assisted by Jonathan Douglas.
3:20Corner, Charlton Athletic. Conceded by Cole Skuse.
3:18Attempt blocked. Ademola Lookman (Charlton Athletic) right footed shot from outside the box is blocked. Assisted by Johann Berg Gudmundsson.
0:00First Half begins.
0:00Lineups are announced and players are warming up.
Live data and text provided by our data suppliers