The visitors twice took the lead at El Madrigal, Luis Garcia opening the scoring in the 34th minute and then Pablo Barrera restoring their advantage on the stroke of half-time after Giuseppe Rossi had equalised for Villarreal.
It remained that way heading into the final 11 minutes, but the dismissal of Zaragoza defender Maurizio Lanzaro gave Villarreal a boost and substitute Hernan Perez salvaged a point with an 83rd-minute leveller.
The result leaves Juan Carlos Garrido's side, who were fourth last season, with just one win from their opening six league matches, while in the Champions League they have suffered successive 2-0 defeats to Bayern Munich and Napoli.
Zaragoza, who like Villarreal now have six points from six games, threatened first tonight when Paulo Da Silva's seventh-minute header was saved by Diego Lopez, who was also called on to keep out efforts from Leo Ponzio and Luis Garcia soon after.
Villarreal were not without their opportunities early on either, with Cani seeing his shot tipped around the post by Roberto Jimenez before Javier Camunas and Rossi fired shots wide.
Jonathan De Guzman and Borja Valero also brought saves out of the Zaragoza goalkeeper before the visitors took the lead through Luis Garcia, the summer signing drilling home a shot from inside the area.
That lead lasted barely six minutes as Villarreal drew level from the penalty spot after Lanzaro had fouled Mateo Musacchio.
Lanzaro was booked for that and Rossi ensured the opportunity was not wasted as he fired his spot-kick high into the net.
Zaragoza were back in front soon after, however, with Barrera turning in Angel Lafita's pass, and that gave the visitors the lead at the interval - although Cani very nearly levelled things up in injury time with an effort that hit the crossbar.
Faced with the prospect of their first home league defeat of the season, Villarreal laid siege to the Zaragoza goal after the break but De Guzman, Jose Manuel Catala, Cani, Perez, Rossi (twice) and Mario either failed to hit the target with their efforts or were denied by Jimenez.
With time running out, Villarreal were handed a lifeline in the 79th minute when Lanzaro was handed his marching orders for a foul on Gerard Bordas, and it took the hosts just four minutes to make their numerical advantage count.
Marcos Senna curled over a corner from the left and his fellow replacement Perez headed in to get Villarreal back on level terms.
Rossi then almost won it for the home side in the 87th minute but he was denied by a brilliant save from Jimenez as the spoils were shared.