Match ends, Derby County 0, Millwall 1.
Derby County 0-1 Millwall
Millwall striker Steve Morison's second-half header denied Derby the chance to move within two points of the automatic promotion places.
The home side dominated and Lions goalkeeper David Forde denied Conor Sammon from close range early on.
But Millwall took the lead just after the hour when Morison headed into an empty net from Lee Martin's cross.
As Derby pressed for an equaliser, Rams keeper Lee Grant palmed away a Morison effort after a quick counter-attack.
With second-placed Burnley in action at Lancashire rivals Blackburn on Sunday, Steve McClaren's side had the chance to close the gap in third. And they took control from the start, Patrick Bamford heading narrowly wide from a Craig Bryson free-kick before Forde blocked Sammon's effort.
Ed Upson missed from the edge of the area for the visitors before Bamford was off target again for Derby and Forde saved from Simon Dawkins.
But Ian Holloway's side moved ahead when Morison finished from Martin's cross for his sixth goal of the season.
Richard Keogh then headed a late chance wide for the home side but Millwall held on for a second away win of the campaign that keeps them two points clear of 22nd-placed Yeovil.
Derby manager Steve McClaren: "I think if we had been playing for two more days we wouldn't have scored.
"We had no quality in the final third and chances and half-chances that we normally take we didn't.
"They came to do a job and they frustrated us and frustrated the crowd and in the end took the three points away."
Millwall manager Ian Holloway:
"I want us to grow in belief and now we have got 12 cup finals left and I want to get promoted because I don't like relegation battles.
"I've got two of my back four on the bus who won't play on Tuesday but I'm being criticised for them being on the floor.
"What on earth can I do about that if they've been kicked yet some of the fans said I was telling them them to lie down. Never in a million years would I encourage anybody to be anything other than a brilliant professional and work hard and be honest and true."
- 8HendrickSubstituted forWardat 62'minutes
- 18SammonSubstituted forBennettat 80'minutes
- 32DawkinsSubstituted forRussellat 63'minutes
- 1FordeBooked at 90mins
- 2DunneBooked at 90mins
- 3ShittuSubstituted forRobinsonat 56'minutesBooked at 90mins
- 22CampbellSubstituted forChaplowat 75'minutes
- 13MartinSubstituted forWoolfordat 65'minutes
- Mick Russell
- Shots on Target
Second Half ends, Derby County 0, Millwall 1.
Attempt missed. Richard Keogh (Derby County) header from the left side of the six yard box is close, but misses the top left corner. Assisted by Jamie Ward with a cross following a set piece situation.
Alan Dunne (Millwall) is shown the yellow card for a bad foul.
Mason Bennett (Derby County) wins a free kick on the left wing.
Foul by Alan Dunne (Millwall).
Offside, Derby County. Jake Buxton tries a through ball, but Richard Keogh is caught offside.
Will Hughes (Derby County) wins a free kick in the defensive half.
Foul by Richard Chaplow (Millwall).
Richard Keogh (Derby County) wins a free kick on the left wing.
Foul by Paul Robinson (Millwall).
David Forde (Millwall) is shown the yellow card.
Attempt missed. Richard Keogh (Derby County) header from very close range is close, but misses the top right corner. Assisted by Craig Bryson with a headed pass.
Attempt blocked. Johnny Russell (Derby County) left footed shot from long range on the right is blocked. Assisted by Jake Buxton.
Delay over. They are ready to continue.
Delay in match Scott Malone (Millwall) because of an injury.
Attempt missed. Scott Malone (Millwall) left footed shot from outside the box misses to the right. Assisted by Owen Garvan following a set piece situation.
Foul by Richard Keogh (Derby County).
Martyn Woolford (Millwall) wins a free kick in the attacking half.
Corner, Derby County. Conceded by Scott Malone.