Match ends, Paris Saint Germain 3, Barcelona 2.
Barcelona suffered their first defeat of the season as Paris St-Germain moved top of Group F with a thrilling Champions League victory.
The visitors, who had not conceded all season before arriving at Parc des Princes, fell behind when former Chelsea defender David Luiz scored.
Lionel Messi grabbed an equaliser but Marco Verratti nodded in PSG's second.
Blaise Matuidi poked in a third and although Neymar reduced the deficit, Barcelona could not find an equaliser.
They pressed in the closing stages but found the PSG defence, led by the impressive Luiz, hard to break down.
Barcelona substitute Xavi Hernandez made Champions League history by coming on for his 143rd appearance in the competition - more than any other player.
Victory for the PSG, meanwhile, continued their unbeaten start to the season and means they are now top of their group with four points, one more than Barcelona.
In the group's other game, Apoel Nicosia shared a 1-1 draw with Dutch champions Ajax in Cyprus.
Lucas Anderson put Ajax ahead when he swept in after Lasse Schone's shot was saved, but Apoel responded four minutes later when Ricardo van Rhijn handled inside the area and Gustavo Manduca netted the resultant penalty.
Elsewhere, two last-minute goals earned Group H leaders Porto a 2-2 draw at Shakhtar Donetsk.
Alex Teixeira finished from close range early in the second half to put Ukraine's Shakhtar ahead before Luiz Adriano finished off a fine move to make it 2-0 with five minutes remaining.
However, Jackson Martinez converted a penalty before turning in Cristian Tello's cross at the near post to secure a point.
Belarusian side BATE move up to second in the standings after edging Athletic Bilbao 2-1.
Denis Polyakov tapped in the opener for the home side before Aleksandr Karnitski's deflected strike doubled their advantage.
Aritz Aduriz pulled one back for Bilbao on the stroke of half-time, sliding a shot into the far corner, but it was to be nothing more than a consolation.
In Group G, Klaas-Jan Huntelaar ensured German side Schalke drew 1-1 at home to Maribor.
Damjan Bohar turned in Mitja Viler's cross to give the Slovenians the lead, but Huntelaar struck early in the second half, picking up a loose ball and driving home a low shot.
Maribor are second in the standings with two points - the same as Schalke - while Chelsea top the group with four points after a 1-0 win at Sporting Lisbon.
- 23Van der WielBooked at 66mins
- 32David Luiz
- 17Cabelino Andrade
- 24VerrattiBooked at 28minsSubstituted forCabayeat 71'minutes
- 14MatuidiBooked at 44mins
- 7Lucas MouraSubstituted forBahebeckat 90+1'minutes
- 27PastoreSubstituted forChantômeat 86'minutes
- 1ter Stegen
- 22Alves da SilvaBooked at 9minsSubstituted forRamírezat 83'minutes
- 4RakiticSubstituted forHernándezat 69'minutes
- 7PedroSubstituted forEl Haddadiat 62'minutes
- 20Roberto Carnicer
- 31El Haddadi
- Nicola Rizzoli
- Shots on Target
Second Half ends, Paris Saint Germain 3, Barcelona 2.
Corner, Paris Saint Germain. Conceded by Jordi Alba.
Attempt blocked. Jean-Christophe Bahebeck (Paris Saint Germain) right footed shot from a difficult angle on the right is blocked. Assisted by Thiago Motta.
Corner, Paris Saint Germain. Conceded by Javier Mascherano.
Attempt blocked. Edinson Cavani (Paris Saint Germain) left footed shot from the left side of the box is blocked. Assisted by Blaise Matuidi.
Attempt missed. Sandro Ramírez (Barcelona) left footed shot from the centre of the box misses to the right. Assisted by Neymar.
Substitution, Paris Saint Germain. Jean-Christophe Bahebeck replaces Lucas Moura because of an injury.
Delay over. They are ready to continue.
Delay in match Lucas Moura (Paris Saint Germain) because of an injury.
Attempt saved. Edinson Cavani (Paris Saint Germain) left footed shot from outside the box is saved in the bottom right corner. Assisted by Blaise Matuidi.
Attempt blocked. Neymar (Barcelona) right footed shot from the left side of the box is blocked. Assisted by Lionel Messi.
Substitution, Paris Saint Germain. Clément Chantôme replaces Javier Pastore.
Munir El Haddadi (Barcelona) hits the right post with a left footed shot from outside the box. Assisted by Sergio Busquets.
Corner, Barcelona. Conceded by Maxwell.
Substitution, Barcelona. Sandro Ramírez replaces Dani Alves.
Corner, Barcelona. Conceded by Marquinhos.
Attempt blocked. Jordi Alba (Barcelona) left footed shot from the centre of the box is blocked. Assisted by Munir El Haddadi with a cross.
Attempt blocked. Neymar (Barcelona) right footed shot from outside the box is blocked. Assisted by Jordi Alba.
Foul by Dani Alves (Barcelona).