Antonio's first-half header sent West Ham on their way to all three points against Villa, but Zaniolo's finish in the 79th minute secured a point for the visitors in the English capital.
West Ham had three goals disallowed, including one in the 96th minute, with David Moyes's side being denied all three points in the final exchanges.
The result has left Villa fourth in the table, three points ahead of fifth-placed Tottenham Hotspur and nine clear of Manchester United in sixth, while West Ham stay seventh, three points behind the team directly above them.
West Ham almost had an opportunity in the eighth minute following a poor clearance from Villa goalkeeper Emiliano Martinez, but Tomas Soucek was unable to sort out his feet in time, and the visitors survived what perhaps should have been a dangerous moment.
Lucas Paqueta then sent a header wide of the Villa target in the 11th minute, as the match started to heat up following a quiet start at the London Stadium.
Down the other end, West Ham goalkeeper Alphonse Areola made an excellent save to keep out an effort from Ollie Watkins after smart work from Leon Bailey.
The home side came close again in the 19th minute, with a strike from Paqueta taking a deflection off Soucek and just missing the post with Martinez beaten.
Villa had a penalty shout in the 23rd minute when Emerson Palmieri appeared to handle inside the box, but the referee was happy for the play to continue and VAR agreed.
Martinez then made an excellent save to keep out a strike from Vladimir Coufal in the 27th minute, before the right-back hit the rebound wide, with both sides pressing for the game's opening goal.
The breakthrough arrived in the 29th minute, with Antonio getting down low to head into the back of the net after Coufal's cross had caused problems inside the Villa box.
Mohammed Kudus had a chance to double West Ham's advantage in the 38th minute, but the Ghana international's strike from inside the box just missed the target.
West Ham did have the ball in the back of the Villa net for a second time in the 41st minute through Kudus, but the goal was disallowed for a foul on Martinez.
Watkins fired one wide of the target in the latter stages of the first period, and it proved to be a frustrating opening 45 minutes for the visitors to the London Stadium.
West Ham again had the ball in the back of the Villa goal early in the second half, with Antonio looked to have registered his second, but the effort was disallowed following a VAR check for handball on the goalscorer.
Bailey had a half-chance for Villa on the hour, but his effort took a deflection off Emerson, before the forward missed the target with a strike five minutes later.
Areola was needed in the 70th minute to keep out an effort from Youri Tielemans, before Martinez was called into action down the other end to deny Paqueta, and Kudus then struck wide from the resulting corner.
West Ham's goalkeeper made another big stop in the 76th minute to keep out an effort from Ezri Konsa after a dangerous ball was delivered into the home side's penalty box.
Villa managed to level the scores in the 79th minute, though, with Zaniolo turning a low cross from Moussa Diaby into the back of the net from close range following some lacklustre defending from the hosts.
Zaniolo had a chance to score a second in the 85th minute when Lucas Digne delivered a dangerous cross into the penalty box, but Kurt Zouma just did enough to make the clearance.
West Ham thought that they had won it in the 96th minute through Bowen, but following another lengthy VAR check, the goal was disallowed for a handball on Soucek inside a crowded Villa box.
Both teams will return to action on March 30, with West Ham heading to Newcastle United, while Villa will welcome Wolverhampton Wanderers to Villa Park.