Match ends, Aston Villa 0, Middlesbrough 0.
Aston Villa were made to settle for a second goalless draw at home in four days on a dramatic night of two red cards against Middlesbrough.
Boro were down to 10 men on four minutes, following ex-Villa man Adama Traore's tackle on Conor Hourihane.
Numbers were evened up on 64 minutes when Henri Lansbury also got a straight red for tripping Boro's Marvin Johnson.
The closest either side came to a winner was Robert Snodgrass's effort off the bar for Villa.
But, on a night when main striker Jonathan Kodjia returned from injury off the bench for Villa, Boro also survived one amazing double let-off which saw Kodjia's header saved by Darren Randolph before Hourihane's follow-up shot was unwittingly blocked on the line by his own team-mate Scott Hogan.
On a wet night in Birmingham, the slippery conditions were always likely to play a part in a combative contest which proved error-strewn almost from the very first minute.
Villa keeper Sam Johnstone had already made a flying save to deny Ben Gibson's towering header when Traore slid recklessly into a touchline challenge as Hourihane was attempting to clear upfield and got himself sent off.
With their man advantage, Villa unsurprisingly looked the more likely to score. But, from Neil Taylor's neat left-foot chip, Lansbury was denied by Randolph.
And his attempt to win a penalty when he fell over the Boro keeper looking to get on the rebound came to nothing.
Then, from loan man Snodgrass's right-wing cross, Birkir Bjarnason almost got on the end of it two yards out.
Villa continued to make the better chances after the break, when an off-balance Snodgrass hit the bar, Hourihane was also denied and Keinan Davies had a header drift just wide from a Snodgrass cross.
The game then took another twist when Villa midfielder Lansbury, not previously booked, thought he was taking one for the team when he fetched down the galloping Johnson from behind. But referee Darren Bond deemed it serious foul play and issued his second red of the night.
The introduction of last season's top scorer Kodjia on 70 minutes gave Villa some late spark, but his first powerful header was saved by former Birmingham City keeper Randolph and another one flew just over as the hosts failed to find a way through.
Aston Villa boss Steve Bruce told BBC Sport:
"It's a huge frustration for us, the chances we create and we don't score. I've said since I've been here that we're over reliant on Jonathan Kodjia. But at least he's back for us now.
"Tonight we've had 19 efforts, we've had Robert Snodgrass hit the bar, BIrkir Bjarnason's header from almost on the line and then Scott Hogan keeps one out for them. And you know it's not your night.
"The ref did his best to level it up. It was a silly challenge by Henri Lansbury but it's a yellow card not a red. He had no need to give it.
On Traore's red card: "I don't ever want to see any player sent off, but really it was reckless and dangerous and he deserved a red."
- 27El Mohamady
- 8LansburyBooked at 64mins
- 15JedinakSubstituted forHoganat 45'minutes
- 7SnodgrassBooked at 31mins
- 39DavisSubstituted forKodjiaat 70'minutesBooked at 83mins
- 20BjarnasonSubstituted forAdomahat 45'minutes
- 22ChristieBooked at 80mins
- 2da Silva
- 37TraoréBooked at 4mins
- 7LeadbitterSubstituted forHowsonat 72'minutes
- 19DowningSubstituted forJohnsonat 45'minutes
- 9AssombalongaSubstituted forFletcherat 82'minutes
- James Linington
- Shots on Target
Second Half ends, Aston Villa 0, Middlesbrough 0.
Attempt missed. Conor Hourihane (Aston Villa) left footed shot from the centre of the box is high and wide to the left. Assisted by Robert Snodgrass with a cross following a corner.
Corner, Aston Villa. Conceded by Jonny Howson.
Foul by Robert Snodgrass (Aston Villa).
Marvin Johnson (Middlesbrough) wins a free kick in the attacking half.
Attempt missed. Lewis Baker (Middlesbrough) left footed shot from outside the box is high and wide to the left. Assisted by Adam Clayton.
Corner, Aston Villa. Conceded by Dael Fry.
James Chester (Aston Villa) wins a free kick in the attacking half.
Foul by Ashley Fletcher (Middlesbrough).
Jonathan Kodjia (Aston Villa) is shown the yellow card.
Jonathan Kodjia (Aston Villa) has gone down, but that's a dive.
Substitution, Middlesbrough. Ashley Fletcher replaces Britt Assombalonga.
Attempt missed. Jonathan Kodjia (Aston Villa) header from the centre of the box is just a bit too high. Assisted by Conor Hourihane with a cross following a set piece situation.
Cyrus Christie (Middlesbrough) is shown the yellow card for a bad foul.
Conor Hourihane (Aston Villa) wins a free kick on the left wing.
Foul by Cyrus Christie (Middlesbrough).
Robert Snodgrass (Aston Villa) wins a free kick in the defensive half.
Foul by Fabio (Middlesbrough).
Offside, Middlesbrough. Marvin Johnson tries a through ball, but Britt Assombalonga is caught offside.