Dusan Vlahovic put the visitors ahead after just 30 seconds, controlling a ball on his chest before turning and firing home a shot at the left-hand post.
The goal left the atmosphere in the Estadio de la Ceramica cold. But Villarreal suddenly caused Juventus problems as Giovani Lo Celso brought the home side to life with an effort that bounced back off the woodwork.
Samuel Chukwueze proved to be a threat for the Juventus defence down the right wing, while Etienne Capoue, who had been passed fit to play before kick-off, fired just over the bar. With Dani Parejo and Lo Celso controlling the midfield, Villarreal pressed for an equaliser.
Juventus made a change at half-time with Leonardo Bonucci replacing Alex Sandro in defence, and the visitors had the first chance of the second half with Alvaro Morata firing just wide of the far post, Xinhua reports.
Villarreal played with slightly more patience than the first half, and Lo Celso forced a save from Wojciech Szczesny in the 56th minute.
Parejo equalised for the home side 10 minutes later, as he ghosted into space between Juventus' three central defenders to collect a pass from Capoue before scoring with a left-footed shot. Tensions increased with the game well-balanced, as both Villarreal keeper Geronimo Rulli and Juventus' Adrien Rabiot were shown yellow cards after the French midfielder tackled over the ball.
Either side could have won the game in the closing minutes with Rulli saving well from Vlahovic at one end, before Bonucci did well to clear ahead of Lo Celso and Yeremi Pino at the other to leave everything to be decided in the second leg in Turin.
Also read: Barcelona roll over Valencia in La Liga
Also watch: