Debutant Luis Suarez wasted no time in making his mark at Atletico Madrid as Bundesliga champions Bayern Munich suffered a day to forget.
Suarez came off the bench with 20 minutes remaining, and Atletico leading 3-0, to announce himself in style three days after his arrival from Barcelona with two goals in a 6-1 rout of Granada.
Diego Costa scored the only goal of the first half after nine minutes, with Saul Niguez's seeing his 16th-minute penalty saved by Rui Silva for the hosts.
Angel Correa and Joao Felix netted before Suarez's introduction, and he made an immediate impact by laying on for Marcos Llorente to add a fourth.
Suarez scored a fine header to open his account in the 85th minute and, while Jorge Molina grabbed a late consolation for Granada, the Uruguay striker slid home his second in stoppage time.
His former strike partner Lionel Messi was on target from the spot after 35 minutes as Barcelona raced into a 4-0 half-time lead over Villarreal at the Nou Camp.
Ansu Fati's 15th and 19th-minute goals got Barca off to the perfect start before Messi made no mistake from 12 yards after Fati had been fouled by Mario Gaspar.
Pau Torres' own goal as the whistle approached completed the scoring with 45 minutes still to play.
Sevilla's Munir El Haddadi and Ivan Rakitic both scored at the death to seal a 3-1 win at Cadiz after Luuk De Jong had cancelled out Salvi Sanchez's opener for the hosts, while Sergi Guardiola's penalty earned a 1-1 draw for Real Valladolid at home to Celta Vigo, who had taken a first-half lead through Iago Aspas.
Elsewhere in LaLiga, goals from Gonzalo Melero, Roger Marti and Jose Luis Morales saw Levante come from behind to win 3-1 at Osasuna, while Unai Lopez struck twice - the second of them with just three minutes remaining - to hand Athletic Bilbao a 2-1 win at Eibar.
European champions Bayern Munich suffered a day to forget as they slipped to a first defeat in all competitions in 33 attempts at Hoffenheim.
Ermin Bicakcic headed the home side into a 16th-minute lead which was doubled within eight minutes by Munas Dabour.
Joshua Kimmich reduced the deficit from distance with 36 minutes gone as his side attempted to preserve an unbeaten Bundesliga run which stretched to 21 games before kick-off.
However, Andrej Kramaric dashed any hopes of a comeback when he restored Hoffenheim's two-goal advantage with 13 minutes remaining and then cemented a 4-1 win with a stoppage-time penalty.
Nils Petersen and Josip Brekalo exchanged first-half strikes as as Freiburg and Wolfsburg drew 1-1.
In Serie A, Cristiano Ronaldo and Jordan Veretout scored twice each as 10-man Juventus were held to a 2-2 draw at Roma.
Veretout converted a 31st-minute penalty to put the home side in front 14 minutes before the break, and after Ronaldo had levelled from the spot, restored the advantage in added time.
Roma's hopes received a further boost when Adrien Rabiot was dismissed with 28 minutes remaining, only for the Portugal skipper to clinch a point with a 69th-minute equaliser.
Franck Kessie's first-half stoppage-time penalty and Brahim Diaz's second-half strike handed AC Milan a 2-0 win at Crotone, while Hirving Lozano's brace helped Napoli to a 6-0 victory over Genoa.
Sassuolo scored three second-half goals to win 4-1 at Spezia, while Andrea Favilli's strike was enough to hand Verona the points at home to Udinese.
In Ligue 1, Mauro Icardi found the back of the net either side of half-time to hand Paris St Germain a 2-0 win at Reims.
Icardi dispatched Kylian Mbappe's ninth-minute pass and then repeated the feat from the same source 17 minutes into the second half.
Wissam Ben Yedder's double laid the foundation for Monaco to beat Strasbourg 3-2 despite playing the last 23 minutes with only nine men.
Ben Yedder's brace either side of Ruben Aguilar's strike and Mehdi Chahiri's reply had the home side coasting, but they had to hang following the second-half dismissals of Aurelien Tchouameni and Axel Disasi with Ludovic Ajorque's penalty setting up a tense conclusion.
Angers edged a five-goal thriller at home to Brest courtesy of Angelo Fulgini's 80th-minute winner, while Teji Savanier's 90th-minute spot-kick handed Montpellier a 2-2 draw at Dijon.
Nimes' home clash with Lens and Lyon's trip to Lorient both finished 1-1, and there were no goals between Bordeaux and Nice.