Match ends, Aston Villa 1, Derby County 0.
Aston Villa won for the first time in 2017 as they beat Derby in a hard-fought Championship game at Villa Park.
Centre-back James Chester scored the only goal when he nodded in Henri Lansbury's corner from close range.
Derby had a big appeal for a penalty denied before the break when Darren Bent went down under a challenge.
Andre Green hit the post early in the second half for Villa, who held on to end a 10-match winless run despite Leandro Bacuna's late sending-off.
Bacuna was dismissed for the first time in a Villa shirt in added time after an altercation with an assistant referee, but Derby were unable to create any further chances.
Bent had the Rams' best opportunity of the second half, but the former Villa striker's header was pushed over the bar by goalkeeper Sam Johnstone.
That effort was Derby's only attempt on target, as they saw their winless run extend to six games in all competitions, leaving them 10 points outside the play-off places.
Villa, meanwhile, remain 17th in the table, but they are now eight points clear of the relegation zone with 13 matches to play this season.
Aston Villa manager Steve Bruce told BBC WM:
"It wasn't pretty and it wasn't going to be. It's a relief for everyone concerned. It wasn't great but at least the players showed that it meant something to them.
"We have got a lot of improving to do and we understand that. The supporters have gone home today having seen their team roll up their sleeves.
"The club has had a tough time for years and I am not going to change that in 16 weeks. But I will change it, I need time."
Derby manager Steve McClaren told BBC Radio Derby:
"We deserved something and I can't believe we've lost, but if you don't score goals you don't win games.
"I'm hugely disappointed and I can't believe we didn't get a penalty. I've seen it again and it was stonewall.
"The referee told me he wasn't 100 per cent sure but it has cost us the game."
- 3TaylorBooked at 79mins
- 7BacunaBooked at 90mins
- 37AdomahSubstituted forAmaviat 72'minutes
- 19GreenSubstituted forBjarnasonat 74'minutes
- 26KodjiaSubstituted forGardnerat 88'minutes
- 2ChristieBooked at 80mins
- 6KeoghSubstituted forBairdat 49'minutes
- 17de Sart
- 18ButterfieldSubstituted forNugentat 65'minutes
- 10InceBooked at 44mins
- 7RussellSubstituted forBennettat 74'minutes
- Andy Madley
- Shots on Target
Second Half ends, Aston Villa 1, Derby County 0.
Leandro Bacuna (Aston Villa) is shown the red card.
Julien de Sart (Derby County) wins a free kick in the defensive half.
Foul by Birkir Bjarnason (Aston Villa).
Corner, Derby County. Conceded by Alan Hutton.
Cyrus Christie (Derby County) wins a free kick in the defensive half.
Foul by Leandro Bacuna (Aston Villa).
Attempt missed. Leandro Bacuna (Aston Villa) right footed shot from outside the box is high and wide to the right.
Substitution, Aston Villa. Gary Gardner replaces Jonathan Kodjia.
Attempt missed. Mason Bennett (Derby County) right footed shot from outside the box misses to the left.
Corner, Derby County. Conceded by Nathan Baker.
Attempt blocked. Will Hughes (Derby County) left footed shot from outside the box is blocked. Assisted by Cyrus Christie.
Attempt missed. Tom Ince (Derby County) left footed shot from the left side of the box is close, but misses to the right.
Cyrus Christie (Derby County) is shown the yellow card for a bad foul.
Foul by Cyrus Christie (Derby County).
Jordan Amavi (Aston Villa) wins a free kick in the defensive half.
Neil Taylor (Aston Villa) is shown the yellow card.
Cyrus Christie (Derby County) wins a free kick on the right wing.
Foul by Neil Taylor (Aston Villa).