Manchester City and Celtic celebrated derby wins and both Madrid teams were in the goals but Barcelona and Dinamo Zagreb suffered shock defeats: how the 32 teams got on ahead of matchday one.
Article top media content
Paris Saint-Germain 1-1 St-Étienne (Lucas 67pen; Berić 90+2)
Paris were denied a third league victory in four games when Robert Berić scuffed in a dramatic equaliser from Kevin Malcuit's cross. Malcuit had earlier felled Blaise Matuidi to concede a 67th-minute penalty which Lucas confidently converted.
Arsenal 2-1 Southampton (Koscielny 29, Cazorla 90+4pen; Čech 18og)
The day began badly for Arsenal when the ball deflected in off Petr Čech after he had tipped a Dušan Tadić free-kick on to the bar. However, Laurent Koscielny's overhead kick cancelled out Southampton's lead and deep in added time Olivier Giroud was fouled in the box and Santi Cazorla stepped up to win it.
Basel 3-1 Grasshoppers (B Bjarnason 28, Doumbia 31 86; Sigurjónsson 45+2)
Basel moved nine points clear in the Swiss Super League after seven perfect wins on a day when members of Iceland's UEFA EURO 2016 quarter-finalists scored for both sides. It was some revenge for Basel having lost twice at home to Grasshoppers last season, their only league defeats at St. Jakob-Park in 2015/16.
Cherno More 1-3 Ludogorets (Palomino 39og; Wanderson 58, Marcelinho 75 84)
Marcelinho capped a memorable week with two goals in Varna as Ludogorets earned their first away league victory at the third time of asking. José Palomino's own goal was cancelled out by Wanderson before Marcelinho, who scored in Bulgaria's 4-3 win against Luxembourg on Tuesday, struck a late double.
Arouca 1-2 Benfica (Walter González 56; Semedo 16, Lisandro López 51)
Benfica now have ten points from their first four league games with goals in each half from defenders Nélson Semedo and Lisandro López sufficient to see off struggling Arouca.
Beşiktaş 3-1 Kardemir Karabükspor (Cenk Tosun 26, Ömer Şişmanoğlu 30, Oğuzhan Özyakup 82pen; Traoré 48)
Beşiktaş continued their unbeaten start to the Turkish Super League with their late penalty coming after the visitors had been reduced to ten men.
Palermo 0-3 Napoli (Hamšík 47, Callejón 51 65)
José María Callejón scored twice for the second game running as Napoli extended their unbeaten streak. Marek Hamšík got his 82nd Serie A goal, one more than Diego Maradona, though the Slovakian is still 16 short of the Argentinian's club record tally of 115 in all competitions.
Shakhtar Donetsk 1-1 Dynamo Kyiv (Dentinho 75; Gusev 24pen)
Dynamo Kyiv remained three points behind leaders Shakhtar after the Pitmen grabbed a late equaliser to cancel out Oleh Gusev's first-half penalty in Lviv.
Barcelona 1-2 Alavés (Mathieu 46; Deyverson 39, Ibai Gómez 64)
Despite Neymar returning from his post-Olympics club rest, Paco Alcácer making his debut and Lionel Messi, Luis Suárez and Andrés Iniesta coming off the bench, Barcelona's perfect start was ended by their visitors, unbeaten since promotion. Barça did dominate, but the comeback that seemed likely after they scored 59 seconds past the break was thwarted, Messi missing deep in added time. It ended a ten-game competitive winning streak for Luis Enrique's men.
Celtic 5-1 Rangers (Dembele 33 42 83, Sinclair 61, Armstrong 90+2; Garner 44)
In the first 'Old Firm' league derby in four years, Moussa Dembele was the star against a Rangers side that had debutant Philippe Senderos sent off. Dembele's hat-trick was the first for Celtic against Rangers in the league since Stevie Chalmers in 1966 and they now have four wins out of four in the Scottish Premiership.
Manchester United 1-2 Manchester City (Ibrahimović 42; De Bruyne 15, Iheanacho 36)
Kevin De Bruyne scored one and made another inside 36 minutes as Josep Guardiola got the better of old rival José Mourinho and City stretched their perfect Premier League start to four wins, ending United's own 100% record. Claudio Bravo and substitute Leroy Sané made City debuts.
Freiburg 3-1 Borussia Mönchengladbach (Philipp 54 85, Petersen 88pen; Hazard 35)
Thorgan Hazard gave Gladbach a half-time lead, but things turned around after two goals from Germany Under-21 midfielder Maximilian Philipp.
Schalke 0-2 Bayern München (Lewandowski 81, Kimmich 90+2)
Schalke impressed for an hour, not least when Klaas-Jan Huntelaar hit the bar in the 56th minute. However, Bayern finished strongly, with Douglas Costa and Robert Lewandowski missing presentable chances before the Poland striker fired in the opener from Javi Martínez’s slide-rule through ball. He then set up Joshua Kimmich on the counterattack in added time.
Rostov 2-1 Krylya Sovetov (Bukharov 33, Prepeliţă 59; Mollo 54)
Aleksandr Bukharov scored his first league goal since October and Andrei Prepeliţă grabbed the winner on his debut as Rostov made it ten points from 12 at home this season.
Celta Vigo 0-4 Atlético Madrid (Koke 53, Griezmann 73 81, Correa 89)
Having drawn their opening two Liga matches, Atleti seemed to be heading for a third before Koke finished off an Antoine Griezmann cross, the France striker then twice heading in.
NEC Nijmegen 0-4 PSV Eindhoven (Ramselaar 4, Pereiro 10, Brenet 20, De Jong 24)
Unbeaten PSV got the job done early to ensure they matched Tuesday's opponents Atleti. In PSV's 11th away league win in a row – they are unbeaten in their Eredivisie travels since 19 September 2015 – Ramon-Pascal Lundqvist was given his debut.
Stoke City 0-4 Tottenham Hotspur (Son 41 56, Alli 59, Kane 70)
Spurs remain unbeaten and, to top it all, Harry Kane opened his account for the season with his 50th goal for the club. Son Heung-Min set up the England striker after registering twice himself.
Lille 1-4 Monaco (Palmieri 90; Sidibé 2, Traoré 17, Fabinho 47, Glik 71)
Monaco remain unbeaten at the Ligue 1 summit after a comfortably victory at LOSC. Radamel Falcao came off the bench on his return from injury.
Bayer Leverkusen 3-1 Hamburg (Pohjanpalo 79 90+1 90+4; Wood 58)
Leverkusen were trailing when Joel Pohjanpalo was brought on in the 66th minute. The Finland striker, who scored a minute into his long-delayed debut for Leverkusen last month, claimed a hat-trick three days before his 22nd birthday, the last two coming in added time. Karim Bellarabi went off with a groin injury.
CSKA Moskva 3-0 Terek Grozny (L Traoré 26 38, Strandberg 78)
There was victory for the home side in their first match at the new CSKA Moskva Stadium. CSKA remain unbeaten six games into the Russian season as on-loan Monaco player Lacina Traoré got off the mark for his new club with two first-half goals; Terek ended up with ten men.
Real Madrid 5-2 Osasuna (Ronaldo 6, Danilo 40, Ramos 45+1, Pepe 56, Modrić 62; Oriol Riera 64, David García 78)
Cristiano Ronaldo took just six minutes of his first appearance since his UEFA EURO 2016 final injury to score and set Madrid on their way to a perfect third win of the season against an Osasuna side that ended with ten men. Kiko Casilla saved a Roberto Torres penalty while Sergio Ramos has now scored in 13 straight Liga seasons.
Sporting CP 3-0 Moreirense (Gelson Martins 27, Campbell 52, Dost 56)
Sporting are the only side with a perfect four wins in the Portuguese Liga, aided by a 34th-minute red card for Neto when the home side were one up. Bas Dost scored on debut and Joel Campbell also opened his Sporting account.
RB Leipzig 1-0 Borussia Dortmund (Keita 89)
Dortmund dropped their first points of the season as Leipzig won their debut home Bundesliga game in dramatic style, substitute Naby Keita set up by new signing Oliver Burke as the city ended a 22-year wait for top-flight football. Dortmund had the better of the early exchanges but were ultimately blunted.
Nieciecza 2-1 Legia Warszawa (Jovanovic 20pen, Kedziora 84pen; Nikolić 90+3)
Legia have just nine points from eight games, after conceding two penalties to their high-flying hosts. Nemanja Nikolić has now scored nine of Legia's 18 goals this season.
Liverpool 4-1 Leicester City (Firmino 13 89, Mané 31, Lallana 56; Vardy 38)
It was not the ideal warm-up for Leicester's UEFA Champions League debut as they suffered the second defeat of their title defence despite Jamie Vardy giving them hope late in the first half when he pounced on a mix-up at the back for Liverpool. Not long before, Danny Simpson had limped off, while new signing Islam Slimani was not included.
Waasland-Beveren 1-0 Club Brugge (Schrijvers 58)
Club Brugge's poor form continued as they suffered a third reverse in five league games. Siebe Schrijvers's second-half strike was enough to give the hosts their first win while the champions slipped to a third consecutive defeat on the road.
Porto 3-0 Guimarães (Marcano 38, Óliver Torres 46, João Aurélio 55og)
Porto remain within three points of Sporting after maintaining their unbeaten home record against their visitors going back 20 years, when they still played at the Estádio das Antas.
København 2-0 Odense (Augustinsson 87pen, Cornelius 90)
FCK maintained their position at the top of the league but left it late in a game they dominated. København are a record 36 matches unbeaten at home in the Danish league, stretching back to 15 August 2014.
Juventus 3-1 Sassuolo (Higuaín 4 10, Pjanić 27; Antei 33)
Gonzalo Higuaín partnered Paulo Dybala for the first time and continued his excellent start to life at Juventus, his second goal a fine volley. Miralem Pjanić then pounced to score on his debut after his header hit the bar, leaving Juve with three Serie A wins out of three.
Sevilla 2-1 Las Palmas (Sarabia 89pen, Carlos Fernández 90+4; Tana 16)
A penalty conceded in the last minute, for which Pedro Bigas was sent off for fouling Vitolo, allowed Paulo Sarabia to level and then substitute Carlos Fernández scored his first Sevilla goal with the very last touch. Sevilla now have seven points from three games.