Zaragoza twice took the lead at the Madrigal Stadium, with Luis Garcia scoring in the 34th minute and Pablo Barrera re-establishing the lead just before halftime.
Giuseppe Rossi chipped a penalty to level the scores for the first time in the 41st minute and Perez found space at a corner to ensure a share of the points for Villarreal in the 84th, four minutes after Maurizio Lanzaro was sent off for Zaragoza.
Also Saturday, Osasuna had a 2-2 draw at home against Mallorca, while Racing Santander drew 1-1 with Rayo Vallecano.
Later, it was Valencia vs. Granada and Malaga vs. Getafe.
Short link: