Atletico Madrid produced another unspectacular but hugely effective performance as they defended well to defeat Villarreal 2-0 at El Madrigal.
An Alfonso Pedraza own goal in the first half set the tone for the night in which nothing went right for the hosts, and with the Yellow Submarine pressing Joao Felix struck into the corner to seal the points and set up a mouthwatering Madrid derby against rivals Real next weekend.
Villarreal 0-2 Atletico Madrid: Player Ratings, Match Stats, Player Stats
Atleti looked a little nervous early on, with their poor display against Chelsea in the Champions League still fresh in their thoughts. But the home size, while having much of the ball, struggled to create any clear opportunities on goal.
It must be said that Atleti didn't either, and it took defender Stefan Savic competing for the ball inside the area to force Pedraza to divert past his own goalkeeper to give Diego Simeone's men the lead.
Luis Suarez was making himself a nuisance throughout, and almost added a second but Sergio Asenjo tipped his effort over the crossbar.
But then Joao Felix emerged from the bench, having not been in the best form in front of goal, but reacted to a poor header from Juan Foyth, controlling to fire his right-footed shot low into the corner and give Atleti breathing room.
Villarreal then had a string of good chances after going two down; Carlos Bacca somehow diverted a shot wide from close range, before Jan Oblak made a smart flying save to flick away Alex Baena's well-timed volley.
But Atleti kept as many men behind the ball as possible throughout and held on for the three points, meaning they have a six-point lead over Real Madrid, with the sides meeting in a potentially season-deciding match next weekend.
Villarreal 0-2 Atletico Madrid: Player Ratings, Match Stats, Player Stats
Substitute in, Lucas Torreira.
Substitute out, Ángel Correa.
Substitute in, Geoffrey Kondogbia.
Substitute out, Luis Suárez.
Substitute in, Jaume Costa.
Substitute in, Alex Baena.
Substitute out, Étienne Capoue.
Substitute out, Manu Trigueros.
Goal by João Félix.
Substitute in, Carlos Bacca.
Substitute in, Pervis Estupiñán.
Substitute out, Moi Gómez.
Substitute out, Alfonso Pedraza.
Yellow card for Raul Albiol.
Yellow card for Saul Niguez.
Substitute in, João Félix.
Substitute out, Thomas Lemar.
Yellow card for Thomas Lemar.
Yellow card for Felipe.
Yellow card for Jaume Costa.
Own goal by Alfonso Pedraza.