La Liga: Espanyol 1 Villarreal 2
The visiting goalkeeper flung himself to his right to keep out Sergio Garcia's spot-kick after Gabriel Paulista had handled inside the area.
It could prove a vital stop for Villarreal come the end of the season as victory moved them to within four points of Athletic Bilbao, who occupy La Liga's fourth and final UEFA Champions League qualifying berth.
Villarreal hit the front in the 36th minute as Moises tapped home from close range following a pinpoint low cross from Nahuel Leiva.
An away victory appeared a formality when Jeremy Perbet made it 2-0 five minutes after half-time, tucking home a rebound after Kiko Casilla had kept out Giovani dos Santos' initial effort.
Espanyol had other ideas, however, and Villarreal had to withstand a late barrage.
Substitute Jhon Cordoba pulled a goal back 12 minutes from time after being set up by Garcia, who then saw his firm penalty parried away by Asenjo as Villarreal bounced back from consecutive league defeats.