Newcastle United claimed a stunning 4-1 win over Paris Saint-Germain on Wednesday in their first Champions League match at St James' Park in 20 years, while holders Manchester City scored two late goals to get the better of RB Leipzig.

Elsewhere in Europe's elite club competition there was a victory for Barcelona in Xavi Hernandez's 100th game as coach and an agonising last-gasp defeat for Celtic against Lazio.

But Newcastle stole the show on a night to remember for their fans on Tyneside as Miguel Almiron, Dan Burn, Sean Longstaff and Fabian Schaer all scored to inflict on the French club their heaviest Champions League group-stage loss since the Qatari takeover of 2011.

Almiron gave Saudi-owned Newcastle a 17th-minute lead following an error by PSG captain Marquinhos, and a Burn header that crossed the line before Gianluigi Donnarumma could swat it away was given after a VAR check for a possible offside six minutes prior to the break.

With Kylian Mbappe unable to make an impact, Longstaff pounced on passive defending to make it 3-0 early in the second half.

Lucas Hernandez pulled one back but a classy strike by Schaer rounded off a fine night for Newcastle at the death.

"PSG are such a good team, we had to defend really well and our spirit was brilliant," Newcastle manager Eddie Howe told broadcaster TNT Sports.

Newcastle go top of Group F and PSG are second after rivals Borussia Dortmund and AC Milan played out a 0-0 draw in Germany.

Alvarez strike sinks Leipzig

Reigning champions City are well on course to qualify for the knockout stages after successfully negotiating their hardest test in Group G to beat Leipzig 3-1 away.

Phil Foden finished off a fine move to put City ahead midway through the first half, only for Lois Openda to equalise just after the interval.

Foden then hit the bar from a free-kick and it looked like Pep Guardiola's side might have to settle for a point until substitute Julian Alvarez found the top corner with a superb strike on 84 minutes.

Alvarez then turned provider for Jeremy Doku to make it 3-1 in stoppage time as City made it two wins out of two in the competition this season.

"We played a fantastic game in all departments. Everyone was perfect," Guardiola told TNT Sports.

Red Star Belgrade and Young Boys got off the mark in the same group with a 2-2 draw in Serbia, where Osman Bukari grabbed an 88th-minute equaliser for the home team.

Cherif Ndiaye had given Red Star the lead but Young Boys -- who face City next -- drew level through Filip Ugrinic and then went ahead courtesy of a Cedric Itten penalty.

Barcelona beat Porto

Barcelona celebrated a landmark night for Xavi with a 1-0 victory away to Porto in Portugal in what was on paper their toughest assignment in Group H.

Ferran Torres scored the only goal as Lamine Yamal became the youngest ever starter in a Champions League match at the age of 16 years and 83 days.

"We had been talking about it, this match was worth half of the qualification," Torres told broadcaster Movistar.

Barcelona ended the game with 10 men after Gavi was sent off late on.

Earlier, Shakhtar Donetsk got a first win in the same group with a remarkable comeback from two goals down to beat Royal Antwerp 3-2 in Belgium.

Arbnor Muja and Michel-Ange Balikwisha had Antwerp 2-0 up at the break, but a brace by Danylo Sikan either side of a Yaroslav Rakitskyy goal turned the game on its head.

Antwerp still could have earned a draw but Toby Alderweireld missed a penalty deep in stoppage time.

Celtic suffered a second straight defeat in Group E after Pedro Rodriguez's 95th-minute strike gave Lazio a 2-1 victory in Glasgow.

Kyogo Furuhashi had put Celtic in front but Matias Vecino equalised, paving the way for the dramatic finale.

Atletico Madrid beat Feyenoord 3-2 in the same group, with Alvaro Morata scoring twice and Antoine Griezmann also on target.

The Dutch champions had led twice, first through a Mario Hermoso own goal and then through David Hancko, but Atletico hit back each time.