Villarreal, who finished fourth in Spain's top-flight last season, were expected to comfortably overcome their Danish opponents, who were missing Peter Utaka, their top scorer from last season, defender Tore Reginiussen and ex-French international Bernand Mendy.
However, it was Odense who hit the ground running and created the better openings early on, with Hans Henrik Andreasen nodding just wide.
Villarreal were eventually jolted into action, and Mateo Musacchio saw his goalbound header cleared off the line by Kalilou Traore, before Giuseppe Rossi came close with two efforts.
The game remained fairly open in the second half, with both keepers producing splendid saves to keep the tie goalless, but with a boisterous home crowd behind them, it was Odense who started taking control of the match.
And in the 84th minute, they were rewarded for their endeavours when a loose back pass by Zapata was pounced on by Andreasen, who clinically finished past Diego Lopez in the Villarreal goal.
The second leg will take place next Tuesday at El Madrigal, where Villarreal will be hoping for better luck in front of goal.