Match ends, Ipswich Town 0, Derby County 1.
Derby County moved above Ipswich into second place in the Championship with a win that ended the home side's 11-match unbeaten league run.
Rams striker Chris Martin seized on Tommy Smith's misjudged headed back-pass to poke home in the second half.
Jay Tabb from close range and a 25-yard David McGoldrick shot went close for Ipswich in the opening half.
The visitors' defender John Eustace was sent off in injury time for receiving a second yellow card.
Ipswich knew a win would put them top, ahead of Bournemouth's home match against Norwich later in the day, but a Derby victory saw them leapfrog their hosts into second.
The visitors, who became the first team to win at Portman Road since Norwich's victory on 23 August, moved level on points with leaders Bournemouth ahead of the Cherries' match.
Ipswich had lost only one of their last 21 games in all competitions and almost went ahead early on as Tabb had a shot saved by goalkeeper Lee Grant before McGoldrick shot over from distance.
Steve McClaren's Derby, unbeaten in four in all competitions, held their own in a tight opening period with chances for either side growing increasingly rare as the half wore on.
The hosts were again the more progressive side after the break, with Teddy Bishop having a low 20-yard shot tipped away by Grant before Derby's Richard Keogh escaped strong penalty shouts for handball against him.
But it was the Rams who broke the deadlock as Martin capitalised on Smith's weak back header to prod the ball into the net to endanger Ipswich's five-match winning streak at home.
And, despite Eustace's late red card for pulling down McGoldrick, the visitors were able to hang on to the win.
Ipswich manager Mick McCarthy:
"Derby are a good side but it was a nothing game and certainly no spectacle.
"It probably should have ended 0-0 but we made a mistake and it cost us. Tommy has come in at the end and apologised but no apology was needed, we all make mistakes."
Derby boss Steve McClaren:
"That was as good an away performance as we have had for a long time. This is a tough place to come but we put in a really mature display.
"You need to have that maturity to win games and sometimes we have been a little naive and not got the results. But today we stood up to their challenge when we had to, defended well and played it around.
"The game wasn't pretty at times but this performance, and the belief and confidence it will give us, is something we can build on."
- 5SmithBooked at 18mins
- 19HyamBooked at 85mins
- 11AndersonSubstituted forHuntat 68'minutes
- 18TabbSubstituted forHuntat 56'minutes
- 27BishopSubstituted forBruat 72'minutes
- 10McGoldrickBooked at 45mins
- 8HendrickSubstituted forBrysonat 80'minutes
- 14EustaceBooked at 90mins
- 11RussellSubstituted forShottonat 90+2'minutes
- 44IbeSubstituted forDawkinsat 86'minutes
- Kevin Wright
- Shots on Target
Second Half ends, Ipswich Town 0, Derby County 1.
Attempt missed. Tommy Smith (Ipswich Town) header from the centre of the box is just a bit too high. Assisted by Stephen Hunt with a cross following a corner.
Corner, Ipswich Town. Conceded by Lee Grant.
Stephen Hunt (Ipswich Town) wins a free kick in the attacking half.
Foul by Craig Forsyth (Derby County).
Attempt missed. Christophe Berra (Ipswich Town) header from the centre of the box is close, but misses to the right. Assisted by Stephen Hunt with a cross following a corner.
Corner, Ipswich Town. Conceded by Jake Buxton.
Attempt blocked. David McGoldrick (Ipswich Town) right footed shot from outside the box is blocked.
Attempt saved. Kevin Bru (Ipswich Town) left footed shot from the left side of the box is saved in the bottom left corner.
Substitution, Derby County. Ryan Shotton replaces Johnny Russell.
Attempt saved. Luke Chambers (Ipswich Town) header from the centre of the box is saved in the centre of the goal. Assisted by Stephen Hunt.
Second yellow card to John Eustace (Derby County) for a bad foul.
David McGoldrick (Ipswich Town) wins a free kick in the attacking half.
Foul by John Eustace (Derby County).
Foul by Stephen Hunt (Ipswich Town).
Will Hughes (Derby County) wins a free kick in the defensive half.
Substitution, Derby County. Simon Dawkins replaces Jordon Ibe.
Luke Hyam (Ipswich Town) is shown the yellow card for a bad foul.
Foul by Luke Hyam (Ipswich Town).