Goalkeeper Brad Guzan was the Villa hero after a string of fine saves including an sensational reaction stop to deny substitute Andy Carroll in the fourth minute of stoppage time.
Stewart Downing also came close for the Hammers, who still manged to inch above Arsenal into fourth place, despite the draw.
Gabby Agbonlahor and Andy Weimann posed a threat for Paul Lambert’s side as they finally ended their losing streak since winning at Liverpool in mid-September to pick up a valuable share of the spoils.
Villa had set themselves up to be hard to break down, while also offering a forward threat through Weimann and Charles N’Zogbia, supported by Agbonlahor, who came in for Christian Benteke, the Belgian starting a three-match ban after his red card against Spurs.
The former England man darted into the West Ham box past James Collins, but then lifted his shot over the crossbar.
At the other end, the Irons defender then sent a powerful header goalwards from a corner, which was straight at a grateful Guzan.
West Ham maintained the pressure as the quarter-hour mark approached, but then almost hit the self-destruct button on 18 minutes as Winston Reid overhit a backpass, which goalkeeper Adrian mis-controlled and the ball almost rolled inside the far post.
It was then the turn of Guzan to enjoy a slice of fortune as he came out to punch a highball into the box from Aaron Cresswell, but clattered into Aly Cissokho as he challenged with Diafra Sakho, the ball dropping wide.
The American, though, showed good hands moments later as he beat away a fierce, angled drive from Stewart Downing, the one-time Villa midfielder just recalled to the England squad.
Villa remained dangerous on the break, and went close on 38 minutes.
N’Zogbia ghosted into the left side of the West Ham penalty area, and rolled the ball back to Andreas Weimann, who moved inside before drilling a 15-yard strike straight at Adrian.
In first-half stoppage time, West Ham worked the ball well from the right along the Villa penalty area out to Downing on the left – but the midfielder could only skew his shot into the side netting.
Weimann threatened for Villa just after the restart, lifting a rising shot over following more positive approach play from Agbonlahor.
Allardyce sent on captain Kevin Nolan after 65 minutes, replacing Cheikhou Kouyate.
Tempers were rising, with Villa midfielder Tom Cleverley booked for clattering into Diafra Sakho, fit again following a shoulder injury, before Weimann was shown a yellow card for dissent.
Adrian was alert to kick the ball away after Nolan’s clearance ricocheted back into the six-yard box.
West Ham broke away down the right on 78 minutes through substitute Carlton Cole, who chipped the ball across to Sakho waiting on the penalty spot, but the usually clinical Senegal forward dropped a header wide.
There was a stoppage when Villa defender Nathan Baker went down in his own penalty area after clattering into Cole, with referee Jon Moss awarding a free-kick against the West Ham striker – much to the frustrations of home players and fans alike.
The injury, though, was serious enough for the Villa man to be carried off on a stretcher, replaced by Philippe Senderos.
West Ham looked for a winner, as full-back Carl Jenkinson headed straight at the keeper, with Guzan then denying Carroll – back from an ankle injury – as he palmed away a point-blank header from the England forward to earn Villa a well-deserved point.
Charlie Nicholas’ verdict
In the initial 20 minutes, Villa looked really nervous at the back and managed to get away with a lot of situations but they gradually crept into the game. The big problem for Villa is expressing themselves. They have got to have better quality when they get the ball because it’s hard enough to get it. They had no Christian Benteke and Gabriel Agbonlahor never really threatened much, but he should have scored in the first half. In the second half they had great spells in the game.
West Ham made plenty of opportunities. Sakho didn’t get many opportunities until the final 20 minutes and Guzan had an absolutely outstanding day. It was a thoroughly enjoyable 0-0, it really was. It was a very exciting game with plenty of chances created and Aston Villa should take a lot of credit. It was an enjoyable point for Paul Lambert, but Sam Allardyce will be frustrated.