West Ham threw away two more vital home points which could prove to be the difference between survival and relegation.
The Hammers started brightly and took the lead through Trevor Sinclair's 15th-minute strike, but were rattled by a penalty decision which saw Darius Vassell fire home the equaliser after 35 minutes.
Substitute Oyvind Leonhardsen put Villa ahead with his first touch after 54 minutes before Freddie Kanoute equalised after being brilliantly played in by Joe Cole 11 minutes later.
The fact Bolton lost at Chelsea was some consolation, but this was two points dropped for Glenn Roeder's men on another frustrating afternoon.
The Hammers started brightly and when a ninth-minute corner on the left was swung in by Joe Cole, Steve Lomas met it with a looping header which hit the underside of the bar before bouncing into the arms of grateful goalkeeper Peter Enckelman.
Hammers had a chance to take the lead in the 13th minute when Enckelman's goalkick was headed forward by Lomas and Jermain Defoe reacted fastest in the race into the box. However, with just the goalkeeper to beat the England
Under-21 striker slid his shot wide of the far post.
But the home fans did not have to wait too much longer to celebrate as the Hammers took the lead after 15 minutes.
Kanoute did well down the right flank and put in a good cross. Sinclair was unmarked deep in the box as he took the ball down on his chest and fired through Enckelman's legs for his seventh goal of the season.
Lee Hendrie had taken a kick on the leg which was causing him trouble and after 26 minutes he was replaced by Joey Gudjonsson. Play resumed with a Villa corner on the right and Mustapha Hadji knew he should have done better when he sent a free header over the bar from a cross.
Tomas Repka's recent good disciplinary record took a turn for the worse after 29 minutes when, knowing he could not win the race against Vassell as Villa broke, the big Czech defender body-checked the England star to the ground and was shown a yellow card.
Things went from bad to worse for Repka after 35 minutes. As he dived to make a clearing header inside his own box he bundled over Marcus Allback and referee Mike Dean awarded the visitors a penalty.
It was indeed a foul, although it was a little harsh as Allback made no real attempt to get the ball, but that did not bother Vassell as he drove it past England colleague David James for the equaliser.
The goal gave Villa a much-needed spark and it took a brilliant save from James to keep the teams level at the break as he beat away Hitzlsperger's fierce drive from the edge of the box in the final minute of the half.
West Ham must have been hoping it was not going to turn into a frustrating afternoon, as after 48 minutes they were denied by a goal-line clearance.
Lee Bowyer's corner from the right was turned back in by Glen Johnson and Kanoute swept in a close-range shot which Enckelman blocked on his line.
Villa suffered another casualty as Hadji hobbled off after 52 minutes and was replaced by Leonhardsen - who scored with his first touch of the ball two minutes later.
Gareth Barry forced his way down the left and his cross reached the far post where Leonhardsen arrived to slot the ball home.
The home defence crumbled and Villa went close on three occasions to putting the game beyond West Ham's reach. Leonhardsen lost his balance and shot wide, then Allback hit a speculative low drive from 30 yards which James had to tip round a post, and finally JLloyd Samuel cut inside from the left and curled an effort wide.
West Ham needed a spark and the crowd were pleased to see Les Ferdinand - who had lost his place to Kanoute - replace Bowyer after 61 minutes, although they might have wondered why a now- fit Paolo di Canio was not even on the bench.
The spark arrived courtesy of Cole, who created the equaliser out of nothing for Kanoute after 65 minutes.
Cole supplied a magical ball over the top of the Villa defence which the French striker did well to control on his chest before sweeping it past Enckelman.
With two minutes on the clock Defoe had a great chance to steal the points but fired over the bar. The young striker carved out another opening for himself a minute into injury time but this time Enckelman came to Villa's rescue.
Villa will be satisfied with a point as they bid to make their Premiership status certain, but West Ham remain three points adrift and facing a make-or-break trip to Bolton next Saturday.