Lionel Messi has scored a sensational hat-trick, as Barcelona began their Champions League campaign with a 4-0 home win over Dutch champions PSV.
Messi broke the deadlock in the 32nd minute at the Nou Camp with an immaculately struck free-kick.
The Spanish champions doubled their lead in the 75th minute, with a brilliant run and curling strike from Ousmane Dembele.
Messi got his second and Barca's third two minutes later, and completed his treble in the 87th.
Barca's Samuel Umtiti was dismissed in the 79th minute for a second yellow card.
Inter Milan struck two late goals to secure a stunning 2-1 victory over Tottenham in the other Group B match.
Mauro Icardi's superb volley levelled the scores in the 86th minute and Matias Vecino headed a stoppage-time winner at the San Siro.
Spurs had taken the lead in the 53rd minute with Christian Eriksen's deflected effort off Inter's Miranda.
Liverpool top Group C, after substitute Roberto Firmino struck a brilliant stoppage-time winner in their 3-2 defeat of Paris Saint-Germain at Anfield.
PSG had come back from two goals down, with Kylian Mbappe equalising in the 83rd minute, after Thomas Meunier's 40th minute strike halved the deficit.
Daniel Sturridge opened the scoring for the Reds in the 30th minute with a fine header from an Andy Robertson cross.
James Milner struck from the penalty spot six minute later to double the lead, after Juan Bernat tripped Georginio Wijnaldum in the area.
Red Star Belgrade ground out a 0-0 home draw against Napoli on the Serbian side's Champions League debut.
Goalkeeper Milan Borjan made a flurry of telling saves, while Napoli's Lorenzo Insigne rattled the crossbar in the first half and Jose Callejon had an effort cleared off the line after the break.
Atletico Madrid battled their way back from a goal down for a 2-1 win at Monaco in Group A.
Samuel Grandsir scored from close range to put the hosts ahead in the 18th minute.
Diego Costa equalised for visitors on 31 minutes, before defender Jose Gimenez headed home the winner from a corner on the stroke of halftime.
Borussia Dortmund's Christian Pulisic came off the bench to grab a late winner in a 1-0 victory at Club Brugge.
A game of few clearcut chances looked to be heading for a stalemate, before Brugge defender Matej Mitrovic's clearance looped off the outstretched leg of Pulisic and into the net after 85 minutes, a gift on the striker's 20th birthday.
Galatasaray returned to the Champions League by beating Lokomotiv Moscow 3-0 in Group D.
Garry Rodrigues gave Galatasaray the lead in the ninth minute, while Eren Derdiyok doubled the lead in the 67th.
The hosts had Badou Ndiaye sent off in the 87th for a second booking, but increased the margin of victory in stoppage time courtesy of a Selcuk Inan strike.
Schalke marked their return to the competition after a three-year absence, with a 1-1 draw at home to Porto.
Forward Breel Embolo put the hosts ahead in the 64th minute, before Otavio levelled with Porto's second penalty of the evening 11 minutes later.
On 13 minutes, Porto were awarded a spot kick, but keeper Ralf Faehrmann picked the right corner and spectacularly palmed Alex Telles' penalty to safety.
Reuters