Aston Villa 3 Birmingham City 1
Milan Baros sent Birmingham hurtling closer to the Premiership trapdoor as his two-goal blast eased the pressure on Aston Villa manager David O'Leary.
The Czech international struck his 11th and 12th goals of the campaign to keep Blues entrenched in the bottom three - three points adrift of Portsmouth.
All the dissent against O'Leary from a section of fans was forgotten and Villa have banished any lingering doubts about being sucked into the relegation dogfight with only their second victory in the last 11 games.
It enabled them to complete the double over their rivals after failing to win any of the previous six top flight clashes between the clubs.
Birmingham's destiny is now out of their own hands and, given the resurgence in form of Portsmouth, victory in Wednesday's home clash with Blackburn is crucial.
Steve Bruce's problems began before kick-off when defender Matthew Upson was carried off after injuring his Achilles during the warm-up and Martin Taylor came back into the side.
Blues made a confident start and Liam Ridgewell needed to put in a good tackle to deny Emile Heskey a shot following a flick on from Chris Sutton.
Villa goalkeeper Thomas Sorensen had to make the first save of the game, easily dealing with a low volley from fit again City midfielder Nicky Butt.
After 10 minutes Villa took the lead with Baros' 11th goal of the campaign.
Aaron Hughes' first-time cross evaded several players and found its way to Baros who made no mistake from close range.
Birmingham tried to retaliate and almost equalised within two minutes when a close-range effort from Martin Taylor was cleared off the line by Milner following a Pennant corner.
But Villa had their tails up after Baros' breakthrough and Steven Davis was only just too high with a powerful drive from the edge of the box after Kevin Phillips had laid the ball into his path.
David Dunn's nightmare time with injuries continued when he limped out of the action after 16 minutes to be replaced by Mikael Forssell.
Villa were forced into a change in the 24th minute when Davis pulled up with what looked like a calf injury and the Northern Ireland international midfielder was replaced by Craig Gardner.
And within two minutes Blues had drawn level through Chris Sutton's first goal for the club since his January move from Celtic.
The Villa defence failed to deal with a deep free-kick from Martin Taylor and the ball eventually broke to Sutton, who hammered a low left-footed drive past the dive of Sorensen into the corner of the net.
David O'Leary's side tried to retaliate and Baros carved out an opening after cutting in from the right but hit his low shot straight at Maik Taylor.
Maik Taylor had to be alert in the early stages of the second half to deal with Milner's powerful free-kick after he tried to catch him out at the near post.
Gardner had a golden chance to restore Villa's lead after Phillips had played the ball into his path but he drilled his shot across the face of goal with only Maik Taylor to beat.
Baros became the first player to be yellow carded after 52 minutes for tugging at Pennant's shirt.
After 56 minutes the Holte End erupted when Gary Cahill - only playing because of skipper Olof Mellberg's hamstring injury - put Villa back in front.
Milner lofted the ball into the box from the right flank and there was a scramble before Cahill leapt to volley past Maik Taylor in spectacular fashion.
Cahill leapt into the Villa fans to celebrate and was booked by referee Graham Poll as he made his way back to the centre circle.
Birmingham hit back and Sorensen made a fine save away to his left to keep out Mikael Forssell's volley from 10 yards.
With 13 minutes remaining Baros made sure of victory for Villa with his second goal.
He held onto the ball from Sorensen's clearance before finding Milner and then ran on to receive a pass from the on-loan Newcastle player before drilling his shot across Taylor into the corner of the net.