The 2023–24 UEFA Champions League group stage began on 19 September 2023 and ended on 13 December 2023. A total of 32 teams competed in the group stage to decide the 16 places in the knockout phase of the 2023–24 UEFA Champions League.
Union Berlin and Antwerp made their debut appearance in the group stage. This was the Belgian club's first appearance in the European Cup since their first round exit in the 1957–58 season, and the first ever for the German side. A total of 15 national associations were represented in the group stage.
This was the final season with the group stage format, which was replaced by the league stage format starting from the next season.[1]
The draw for the group stage was held on 31 August 2023, 18:00 CEST, in Monaco. The 32 teams were drawn into eight groups of four. For the draw, the teams were seeded into four pots, each of eight teams, based on the following principles:
Teams from the same association could not be drawn into the same group. Prior to the draw, UEFA formed pairings of teams from the same association (one pairing for associations with two or three teams, two pairings for associations with four or five teams) based on television audiences, where one team would be drawn into Groups A–D and another team would be drawn into Groups E–H, so that the two teams would play on different days. The following pairings were announced by UEFA after the group stage teams were confirmed:[3]
On each matchday, one set of four groups played their matches on Tuesday, while the other set of four groups played their matches on Wednesday, with the two sets of groups alternating between each matchday. The fixtures were decided after the draw, using a computer draw not shown to public. Each team did not play more than two home matches or two away matches in a row, and played one home match and one away match on the first and last matchdays (Regulations Article 16.02).[4]
Below were the participating teams (with their 2023 UEFA club coefficients),[2] grouped by their seeding pot. They included:
Key to colours |
---|
Group winners and runners-up advanced to round of 16 |
Third-placed teams entered Europa League knockout round play-offs |
|
|
|
|
Notes
In each group, teams played against each other home-and-away in a round-robin format. The top two teams of each group advanced to the round of 16. The third-placed teams were transferred to the Europa League knockout round play-offs, while the fourth-placed teams were eliminated from European competitions for the season.
Teams were ranked according to points (3 points for a win, 1 point for a draw, 0 points for a loss). If two or more teams were tied on points, the following tiebreaking criteria were applied, in the order given, to determine the rankings (see Article 17 Equality of points – group stage, Regulations of the UEFA Champions League):[5]
The fixtures were announced on 2 September 2023, two days after the draw. The matches were played on 19–20 September, 3–4 October, 24–25 October, 7–8 November, 28–29 November and 12–13 December 2023. The scheduled kick-off times were 18:45 (two matches on each day) and 21:00 (remaining six matches) CET or CEST.
Times are CETorCEST,[note 1] as listed by UEFA (local times, if different, are in parentheses).
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | BAY | CPH | GAL | MUN | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Bayern Munich | 6 | 5 | 1 | 0 | 12 | 6 | +6 | 16 | Advance to knockout phase | — | 0–0 | 2–1 | 4–3 | |
2 | Copenhagen | 6 | 2 | 2 | 2 | 8 | 8 | 0 | 8 | 1–2 | — | 1–0 | 4–3 | ||
3 | Galatasaray | 6 | 1 | 2 | 3 | 10 | 13 | −3 | 5 | Transfer to Europa League | 1–3 | 2–2 | — | 3–3 | |
4 | Manchester United | 6 | 1 | 1 | 4 | 12 | 15 | −3 | 4 | 0–1 | 1–0 | 2–3 | — |
Galatasaray | 2–2 | Copenhagen |
---|---|---|
|
Report |
|
Attendance: 46,911[6]
Referee: Georgi Kabakov (Bulgaria)
Bayern Munich | 4–3 | Manchester United |
---|---|---|
|
Report |
|
Attendance: 75,000[7]
Referee: Glenn Nyberg (Sweden)
Manchester United | 2–3 | Galatasaray |
---|---|---|
|
Report |
|
Attendance: 73,204[8]
Referee: Ivan Kružliak (Slovakia)
Copenhagen | 1–2 | Bayern Munich |
---|---|---|
|
Report |
|
Attendance: 35,690[9]
Referee: Orel Grinfeld (Israel)
Galatasaray | 1–3 | Bayern Munich |
---|---|---|
Report |
|
Attendance: 51,776[10]
Referee: Davide Massa (Italy)
Manchester United | 1–0 | Copenhagen |
---|---|---|
|
Report |
Attendance: 73,249[11]
Referee: Marco Guida (Italy)
Bayern Munich | 2–1 | Galatasaray |
---|---|---|
|
Report |
|
Attendance: 75,000[12]
Referee: António Nobre (Portugal)
Copenhagen | 4–3 | Manchester United |
---|---|---|
|
Report |
|
Attendance: 36,099[13]
Referee: Donatas Rumšas (Lithuania)
Galatasaray | 3–3 | Manchester United |
---|---|---|
|
Report |
|
Attendance: 51,733[14]
Referee: José María Sánchez Martínez (Spain)
Bayern Munich | 0–0 | Copenhagen |
---|---|---|
Report |
Attendance: 75,000[15]
Referee: Stéphanie Frappart (France)
Manchester United | 0–1 | Bayern Munich |
---|---|---|
Report |
|
Attendance: 73,073[16]
Referee: Espen Eskås (Norway)
Copenhagen | 1–0 | Galatasaray |
---|---|---|
|
Report |
Attendance: 34,726[17]
Referee: Daniele Orsato (Italy)
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | ARS | PSV | LEN | SEV | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Arsenal | 6 | 4 | 1 | 1 | 16 | 4 | +12 | 13 | Advance to knockout phase | — | 4–0 | 6–0 | 2–0 | |
2 | PSV Eindhoven | 6 | 2 | 3 | 1 | 8 | 10 | −2 | 9 | 1–1 | — | 1–0 | 2–2 | ||
3 | Lens | 6 | 2 | 2 | 2 | 6 | 11 | −5 | 8 | Transfer to Europa League | 2–1 | 1–1 | — | 2–1 | |
4 | Sevilla | 6 | 0 | 2 | 4 | 7 | 12 | −5 | 2 | 1–2 | 2–3 | 1–1 | — |
Sevilla | 1–1 | Lens |
---|---|---|
|
Report |
|
Attendance: 33,544[18]
Referee: Tobias Stieler (Germany)
Arsenal | 4–0 | PSV Eindhoven |
---|---|---|
|
Report |
Attendance: 58,860[19]
Referee: Felix Zwayer (Germany)
Lens | 2–1 | Arsenal |
---|---|---|
|
Report |
|
Attendance: 37,040[20]
Referee: Marco Guida (Italy)
PSV Eindhoven | 2–2 | Sevilla |
---|---|---|
|
Report |
|
Attendance: 34,206[21]
Referee: Daniele Orsato (Italy)
Sevilla | 1–2 | Arsenal |
---|---|---|
|
Report |
|
Attendance: 39,595[22]
Referee: Glenn Nyberg (Sweden)
Lens | 1–1 | PSV Eindhoven |
---|---|---|
|
Report |
|
Attendance: 38,133[23]
Referee: Radu Petrescu (Romania)
Arsenal | 2–0 | Sevilla |
---|---|---|
|
Report |
Attendance: 60,024[24]
Referee: István Kovács (Romania)
PSV Eindhoven | 1–0 | Lens |
---|---|---|
|
Report |
Attendance: 34,200[25]
Referee: Daniel Siebert (Germany)
Sevilla | 2–3 | PSV Eindhoven |
---|---|---|
|
Report |
|
Attendance: 29,403[26]
Referee: Davide Massa (Italy)
Arsenal | 6–0 | Lens |
---|---|---|
|
Report |
Attendance: 59,987[27]
Referee: Artur Soares Dias (Portugal)
Lens | 2–1 | Sevilla |
---|---|---|
|
Report |
Attendance: 37,456[28]
Referee: Felix Zwayer (Germany)
PSV Eindhoven | 1–1 | Arsenal |
---|---|---|
|
Report |
|
Attendance: 35,000[29]
Referee: Tobias Stieler (Germany)
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | RMA | NAP | BRA | UBE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Real Madrid | 6 | 6 | 0 | 0 | 16 | 7 | +9 | 18 | Advance to knockout phase | — | 4–2 | 3–0 | 1–0 | |
2 | Napoli | 6 | 3 | 1 | 2 | 10 | 9 | +1 | 10 | 2–3 | — | 2–0 | 1–1 | ||
3 | Braga | 6 | 1 | 1 | 4 | 6 | 12 | −6 | 4 | Transfer to Europa League | 1–2 | 1–2 | — | 1–1 | |
4 | Union Berlin | 6 | 0 | 2 | 4 | 6 | 10 | −4 | 2 | 2–3 | 0–1 | 2–3 | — |
Real Madrid | 1–0 | Union Berlin |
---|---|---|
Bellingham 90+4' | Report |
Attendance: 65,207[30]
Referee: Espen Eskås (Norway)
Braga | 1–2 | Napoli |
---|---|---|
|
Report |
|
Attendance: 18,422[31]
Referee: Serdar Gözübüyük (Netherlands)
Union Berlin | 2–3 | Braga |
---|---|---|
|
Report |
|
Attendance: 73,445[33]
Referee: Srđan Jovanović (Serbia)
Napoli | 2–3 | Real Madrid |
---|---|---|
|
Report |
|
Attendance: 51,649[34]
Referee: Clément Turpin (France)
Braga | 1–2 | Real Madrid |
---|---|---|
|
Report |
|
Attendance: 29,820[35]
Referee: Michael Oliver (England)
Union Berlin | 0–1 | Napoli |
---|---|---|
Report |
|
Attendance: 72,062[36]
Referee: Irfan Peljto (Bosnia and Herzegovina)
Napoli | 1–1 | Union Berlin |
---|---|---|
|
Report |
|
Attendance: 42,449[37]
Referee: Danny Makkelie (Netherlands)
Real Madrid | 3–0 | Braga |
---|---|---|
|
Report |
Attendance: 68,509[38]
Referee: Halil Umut Meler (Turkey)
Real Madrid | 4–2 | Napoli |
---|---|---|
|
Report |
|
Attendance: 73,562[39]
Referee: François Letexier (France)
Braga | 1–1 | Union Berlin |
---|---|---|
Djaló 51' | Report | Gosens 42' |
Attendance: 15,855[40]
Referee: Clément Turpin (France)
Napoli | 2–0 | Braga |
---|---|---|
|
Report |
Attendance: 37,841[41]
Referee: Slavko Vinčić (Slovenia)
Union Berlin | 2–3 | Real Madrid |
---|---|---|
|
Report |
|
Attendance: 73,420[42]
Referee: Rade Obrenovič (Slovenia)
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | RSO | INT | BEN | SAL | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Real Sociedad | 6 | 3 | 3 | 0 | 7 | 2 | +5 | 12[a] | Advance to knockout phase | — | 1–1 | 3–1 | 0–0 | |
2 | Inter Milan | 6 | 3 | 3 | 0 | 8 | 5 | +3 | 12[a] | 0–0 | — | 1–0 | 2–1 | ||
3 | Benfica | 6 | 1 | 1 | 4 | 7 | 11 | −4 | 4[b] | Transfer to Europa League | 0–1 | 3–3 | — | 0–2 | |
4 | Red Bull Salzburg | 6 | 1 | 1 | 4 | 4 | 8 | −4 | 4[b] | 0–2 | 0–1 | 1–3 | — |
Real Sociedad | 1–1 | Inter Milan |
---|---|---|
|
Report |
|
Attendance: 36,591[43]
Referee: Michael Oliver (England)
Benfica | 0–2 | Red Bull Salzburg |
---|---|---|
Report |
|
Attendance: 60,917[44]
Referee: Halil Umut Meler (Turkey)
Red Bull Salzburg | 0–2 | Real Sociedad |
---|---|---|
Report |
|
Attendance: 28,227[45]
Referee: Bartosz Frankowski (Poland)
Inter Milan | 1–0 | Benfica |
---|---|---|
|
Report |
Attendance: 66,573[46]
Referee: Danny Makkelie (Netherlands)
Inter Milan | 2–1 | Red Bull Salzburg |
---|---|---|
|
Report |
|
Attendance: 71,825[47]
Referee: François Letexier (France)
Benfica | 0–1 | Real Sociedad |
---|---|---|
Report |
|
Attendance: 56,002[48]
Referee: Clément Turpin (France)
Real Sociedad | 3–1 | Benfica |
---|---|---|
|
Report |
|
Attendance: 36,815[49]
Referee: Anthony Taylor (England)
Red Bull Salzburg | 0–1 | Inter Milan |
---|---|---|
Report |
Attendance: 30,071[50]
Referee: Serdar Gözübüyük (Netherlands)
Benfica | 3–3 | Inter Milan |
---|---|---|
|
Report |
|
Attendance: 52,944[51]
Referee: Andris Treimanis (Latvia)
Real Sociedad | 0–0 | Red Bull Salzburg |
---|---|---|
Report |
Attendance: 34,419[52]
Referee: Mykola Balakin (Ukraine)
Inter Milan | 0–0 | Real Sociedad |
---|---|---|
Report |
Attendance: 69,010[53]
Referee: Sandro Schärer (Switzerland)
Red Bull Salzburg | 1–3 | Benfica |
---|---|---|
|
Report |
|
Attendance: 27,134[54]
Referee: Daniel Siebert (Germany)
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | ATM | LAZ | FEY | CEL | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Atlético Madrid | 6 | 4 | 2 | 0 | 17 | 6 | +11 | 14 | Advance to knockout phase | — | 2–0 | 3–2 | 6–0 | |
2 | Lazio | 6 | 3 | 1 | 2 | 7 | 7 | 0 | 10 | 1–1 | — | 1–0 | 2–0 | ||
3 | Feyenoord | 6 | 2 | 0 | 4 | 9 | 10 | −1 | 6 | Transfer to Europa League | 1–3 | 3–1 | — | 2–0 | |
4 | Celtic | 6 | 1 | 1 | 4 | 5 | 15 | −10 | 4 | 2–2 | 1–2 | 2–1 | — |
Feyenoord | 2–0 | Celtic |
---|---|---|
|
Report |
Attendance: 44,008[55]
Referee: Irfan Peljto (Bosnia and Herzegovina)
Lazio | 1–1 | Atlético Madrid |
---|---|---|
|
Report |
|
Attendance: 46,168[56]
Referee: Slavko Vinčić (Slovenia)
Atlético Madrid | 3–2 | Feyenoord |
---|---|---|
|
Report |
|
Attendance: 61,742[57]
Referee: François Letexier (France)
Celtic | 1–2 | Lazio |
---|---|---|
|
Report |
|
Attendance: 56,063[58]
Referee: Donatas Rumšas (Lithuania)
Feyenoord | 3–1 | Lazio |
---|---|---|
|
Report |
Attendance: 44,031[59]
Referee: Tobias Stieler (Germany)
Celtic | 2–2 | Atlético Madrid |
---|---|---|
|
Report |
|
Attendance: 55,844[60]
Referee: Felix Zwayer (Germany)
Atlético Madrid | 6–0 | Celtic |
---|---|---|
|
Report |
Attendance: 60,863[61]
Referee: Ivan Kružliak (Slovakia)
Lazio | 1–0 | Feyenoord |
---|---|---|
|
Report |
Attendance: 36,612[62]
Referee: Szymon Marciniak (Poland)
Lazio | 2–0 | Celtic |
---|---|---|
|
Report |
Attendance: 50,555[63]
Referee: Halil Umut Meler (Turkey)
Feyenoord | 1–3 | Atlético Madrid |
---|---|---|
|
Report |
|
Attendance: 43,992[64]
Referee: Anthony Taylor (England)
Atlético Madrid | 2–0 | Lazio |
---|---|---|
|
Report |
Attendance: 63,574[65]
Referee: Serdar Gözübüyük (Netherlands)
Celtic | 2–1 | Feyenoord |
---|---|---|
|
Report |
|
Attendance: 56,391[66]
Referee: Benoît Bastien (France)
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | DOR | PAR | MIL | NEW | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Borussia Dortmund | 6 | 3 | 2 | 1 | 7 | 4 | +3 | 11 | Advance to knockout phase | — | 1–1 | 0–0 | 2–0 | |
2 | Paris Saint-Germain | 6 | 2 | 2 | 2 | 9 | 8 | +1 | 8[a] | 2–0 | — | 3–0 | 1–1 | ||
3 | Milan | 6 | 2 | 2 | 2 | 5 | 8 | −3 | 8[a] | Transfer to Europa League | 1–3 | 2–1 | — | 0–0 | |
4 | Newcastle United | 6 | 1 | 2 | 3 | 6 | 7 | −1 | 5 | 0–1 | 4–1 | 1–2 | — |
Milan | 0–0 | Newcastle United |
---|---|---|
Report |
Attendance: 65,695[67]
Referee: José María Sánchez Martínez (Spain)
Paris Saint-Germain | 2–0 | Borussia Dortmund |
---|---|---|
|
Report |
Attendance: 47,379[68]
Referee: Jesús Gil Manzano (Spain)
Borussia Dortmund | 0–0 | Milan |
---|---|---|
Report |
Attendance: 81,365[69]
Referee: Szymon Marciniak (Poland)
Newcastle United | 4–1 | Paris Saint-Germain |
---|---|---|
|
Report |
|
Attendance: 52,009[70]
Referee: István Kovács (Romania)
Paris Saint-Germain | 3–0 | Milan |
---|---|---|
|
Report |
Attendance: 47,356[71]
Referee: Slavko Vinčić (Slovenia)
Newcastle United | 0–1 | Borussia Dortmund |
---|---|---|
Report |
|
Attendance: 52,024[72]
Referee: Artur Soares Dias (Portugal)
Borussia Dortmund | 2–0 | Newcastle United |
---|---|---|
|
Report |
Attendance: 81,365[73]
Referee: Alejandro Hernández Hernández (Spain)
Milan | 2–1 | Paris Saint-Germain |
---|---|---|
|
Report |
|
Attendance: 75,649[74]
Referee: Jesús Gil Manzano (Spain)
Paris Saint-Germain | 1–1 | Newcastle United |
---|---|---|
Report |
|
Attendance: 46,435[75]
Referee: Szymon Marciniak (Poland)
Milan | 1–3 | Borussia Dortmund |
---|---|---|
|
Report |
|
Attendance: 75,292[76]
Referee: István Kovács (Romania)
Borussia Dortmund | 1–1 | Paris Saint-Germain |
---|---|---|
|
Report |
|
Attendance: 81,365[77]
Referee: Glenn Nyberg (Sweden)
Newcastle United | 1–2 | Milan |
---|---|---|
|
Report |
|
Attendance: 52,037[78]
Referee: Danny Makkelie (Netherlands)
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | MCI | RBL | YB | ZVE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Manchester City | 6 | 6 | 0 | 0 | 18 | 7 | +11 | 18 | Advance to knockout phase | — | 3–2 | 3–0 | 3–1 | |
2 | RB Leipzig | 6 | 4 | 0 | 2 | 13 | 10 | +3 | 12 | 1–3 | — | 2–1 | 3–1 | ||
3 | Young Boys | 6 | 1 | 1 | 4 | 7 | 13 | −6 | 4 | Transfer to Europa League | 1–3 | 1–3 | — | 2–0 | |
4 | Red Star Belgrade | 6 | 0 | 1 | 5 | 7 | 15 | −8 | 1 | 2–3 | 1–2 | 2–2 | — |
Young Boys | 1–3 | RB Leipzig |
---|---|---|
|
Report |
|
Attendance: 31,500[79]
Referee: Enea Jorgji (Albania)
Manchester City | 3–1 | Red Star Belgrade |
---|---|---|
|
Report |
|
Attendance: 50,204[80]
Referee: João Pinheiro (Portugal)
RB Leipzig | 1–3 | Manchester City |
---|---|---|
|
Report |
|
Attendance: 45,228[81]
Referee: Artur Soares Dias (Portugal)
Red Star Belgrade | 2–2 | Young Boys |
---|---|---|
|
Report |
|
Attendance: 47,201[82]
Referee: Willie Collum (Scotland)
RB Leipzig | 3–1 | Red Star Belgrade |
---|---|---|
|
Report |
|
Attendance: 42,209[83]
Referee: José María Sánchez Martínez (Spain)
Young Boys | 1–3 | Manchester City |
---|---|---|
|
Report |
|
Attendance: 31,500[84]
Referee: Morten Krogh (Denmark)
Manchester City | 3–0 | Young Boys |
---|---|---|
|
Report |
Attendance: 51,049[85]
Referee: Erik Lambrechts (Belgium)
Red Star Belgrade | 1–2 | RB Leipzig |
---|---|---|
Report |
|
Attendance: 41,961[86]
Referee: Daniele Orsato (Italy)
Manchester City | 3–2 | RB Leipzig |
---|---|---|
|
Report |
|
Attendance: 51,402[87]
Referee: Glenn Nyberg (Sweden)
Young Boys | 2–0 | Red Star Belgrade |
---|---|---|
|
Report |
Attendance: 31,500[88]
Referee: Danny Makkelie (Netherlands)
RB Leipzig | 2–1 | Young Boys |
---|---|---|
|
Report |
|
Attendance: 43,331[89]
Referee: Manfredas Lukjančukas (Lithuania)
Red Star Belgrade | 2–3 | Manchester City |
---|---|---|
|
Report |
|
Attendance: 49,443[90]
Referee: Aliyar Aghayev (Azerbaijan)
Pos | Team
|
Pld | W | D | L | GF | GA | GD | Pts | Qualification | BAR | POR | SHK | ANT | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Barcelona | 6 | 4 | 0 | 2 | 12 | 6 | +6 | 12[a] | Advance to knockout phase | — | 2–1 | 2–1 | 5–0 | |
2 | Porto | 6 | 4 | 0 | 2 | 15 | 8 | +7 | 12[a] | 0–1 | — | 5–3 | 2–0 | ||
3 | Shakhtar Donetsk | 6 | 3 | 0 | 3 | 10 | 12 | −2 | 9 | Transfer to Europa League | 1–0 | 1–3 | — | 1–0 | |
4 | Antwerp | 6 | 1 | 0 | 5 | 6 | 17 | −11 | 3 | 3–2 | 1–4 | 2–3 | — |
Barcelona | 5–0 | Antwerp |
---|---|---|
|
Report |
Attendance: 40,989[92]
Referee: Radu Petrescu (Romania)
Shakhtar Donetsk | 1–3 | Porto |
---|---|---|
|
Report |
|
Attendance: 46,729[95]
Referee: Davide Massa (Italy)
Antwerp | 2–3 | Shakhtar Donetsk |
---|---|---|
|
Report |
|
Attendance: 13,509[96]
Referee: Rade Obrenovič (Slovenia)
Porto | 0–1 | Barcelona |
---|---|---|
Report |
|
Attendance: 49,722[97]
Referee: Anthony Taylor (England)
Barcelona | 2–1 | Shakhtar Donetsk |
---|---|---|
|
Report |
|
Attendance: 41,409[98]
Referee: Ivan Kružliak (Slovakia)
Antwerp | 1–4 | Porto |
---|---|---|
|
Report |
|
Attendance: 13,651[99]
Referee: Benoît Bastien (France)
Shakhtar Donetsk | 1–0 | Barcelona |
---|---|---|
|
Report |
Attendance: 49,147[100]
Referee: Irfan Peljto (Bosnia and Herzegovina)
Porto | 2–0 | Antwerp |
---|---|---|
|
Report |
Attendance: 44,830[101]
Referee: Maurizio Mariani (Italy)
Shakhtar Donetsk | 1–0 | Antwerp |
---|---|---|
|
Report |
Attendance: 47,209[102]
Referee: Bartosz Frankowski (Poland)
Barcelona | 2–1 | Porto |
---|---|---|
|
Report |
|
Attendance: 43,533[103]
Referee: Daniele Orsato (Italy)
Porto | 5–3 | Shakhtar Donetsk |
---|---|---|
|
Report |
|
Attendance: 48,113[104]
Referee: István Kovács (Romania)
Antwerp | 3–2 | Barcelona |
---|---|---|
|
Report |
|
Attendance: 13,550[105]
Referee: Marco Guida (Italy)