Cedric Bakambu scored a goal in each half as Villarreal recorded a 2-0 victory over 10-man Bayer Leverkusen in the first leg of their Europa League last-16 tie at El Madrigal.
The Liga side made it five straight wins at home in the tournament to give themselves a useful lead to defend ahead of the return fixture at the BayArena on March 17.
Bakambu opened the scoring after four minutes when slotting a one-on-one opportunity through the legs of Bernd Leno, in the process recording his first goal in 12 competitive appearances.
The 24-year-old then repeated the trick in the 56th minute, again embarrassing the goalkeeper to not only double Villarreal's advantage but also make sure Leverkusen's 200th game in a UEFA club competition ended in defeat.
To complete a miserable night for Roger Schmidt's side, they had defender Tin Jedvaj dismissed in injury time after picking up his second booking deep into injury time.
Villarreal caught their opponents cold when Bakumbu, having played an aerial one-two with Roberto Soldado to put himself in behind Leverkusen's high defensive line, beat Leno with a low finish.
The visitors could have been in front even earlier, yet Soldado scuffed his first-time effort after two minutes. The former Tottenham player had been teed up by Mario Gaspar, who turned away from two defenders by the right corner flag before cutting the ball back to his waiting team-mate.
But, after a shaky start, Leverkusen improved as the first half wore on.
Javier Hernandez had their best chance to equalise before the interval, the striker - who had missed Saturday's 3-3 Bundesliga draw with Augsburg through suspension - planting a header from Jedvaj's right-wing cross too close to Villarreal goalkeeper Alphonse Areola.
However, the German side were fortunate not to concede again when Kyriakos Papadopoulos sliced a volleyed clearance from a corner just wide of his own net, while Soldado saw his clever near-post flick instinctively saved by Leno at close range.
Villarreal's did make it 2-0 11 minutes into the second half, Bakambu raced clear to nutmeg Leno for a second time, making Leverkusen pay dearly for cheaply surrendering possession when they had been on the attack.
Christoph Kramer's match came to an early end when he was knocked out cold taking a clearance flush on the side of the head, with the Germany international having to be carried off on a stretcher.
His replacement, Marlon Frey, flashed a long-range effort just over the bar before Leverkusen saw Jedvaj dismissed, referee Gianluca Rocchi showing him a second yellow card for deliberately handling the ball.