Five-time winners Barcelona will play in the Champions League knockout stages for the first time since 2020-21
Barcelona came back from a goal behind to beat Porto and seal a spot in the Champions League last 16.
Brazilian winger Pepe hammered home a rebound to give the Portuguese visitors the lead after half an hour.
However, Porto's advantage lasted just two minutes as Joao Cancelo equalised with a stunning curling strike after cutting inside from the left.
Porto goalkeeper Inaki Pena made several fine saves before Joao Felix tucked home a 56th-minute winner.
Barcelona are guaranteed to qualify from Group H with Porto and Shakhtar Donetsk - who are both three points behind - playing each other in their final game.
Although they have not yet won the group, they will only need to avoid defeat against point-less Royal Antwerp to finish top.
- Tuesday's Champions League action as it happened, plus reaction and analysis
- Line-upsMatch StatsLive Text
Line-upsBarcelona
Formation 4-3-3
13Peña Sotorres4Araujo23Koundé5Martínez2Cancelo8Pedri22Gündogan21F de Jong11Raphinha9Lewandowski14João Félix
- 13Peña Sotorres4Araujo23Koundé5Martínez2CanceloSubstituted forBaldeat 82'minutes8Pedri22Gündogan21F de JongBooked at 37mins11RaphinhaSubstituted forYamalat 90'minutes9Lewandowski14João FélixBooked at 59minsSubstituted forF Torresat 75'minutes
Substitutes
- 3Balde7F Torres15Christensen17Alonso18Romeu20Roberto26Astralaga27Yamal30Casadó31Kochen32López
FC Porto
Formation 4-4-2
99Diogo Costa23Neto Lopes2Cardoso3Pepe12Sanusi11Aquino Cossa6Eustáquio22Varela13Rodrigues do Nascimento Galeno30de Lima Barbosa9Taremi
- 99Diogo Costa23Neto LopesBooked at 57minsSubstituted forSánchezat 67'minutes2CardosoBooked at 36minsSubstituted forNamasoat 90'minutes3Pepe12Sanusi11Aquino CossaBooked at 74mins6EustáquioSubstituted forGonzálezat 81'minutes22Varela13Rodrigues do Nascimento GalenoSubstituted forMartínezat 90'minutes30de Lima BarbosaSubstituted forFernandes da Conceiçãoat 81'minutes9Taremi
Substitutes
- 8Grujic10Fernandes da Conceição14Morais Ramos15Sánchez16González17Jaime19Namaso20Russo Franco21Navarro28Silva Baró29Martínez70Albuquerque Borges
Referee:Daniele OrsatoAttendance:43,533Match StatsHome TeamBarcelonaAway TeamFC PortoPossessionHome55%Away45%ShotsHome21Away13Shots on TargetHome7Away5CornersHome5Away3FoulsHome11Away21Live Text Post update
Match ends, Barcelona 2, FC Porto 1.
90'+7'Full Time
Second Half ends, Barcelona 2, FC Porto 1.
90'+4'Post update
Ilkay Gündogan (Barcelona) wins a free kick in the defensive half.
90'+4'Post update
Foul by Danny Namaso (FC Porto).
90'+3'Post update
Attempt saved. Francisco Conceição (FC Porto) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Mehdi Taremi.
90'+2'Post update
Frenkie de Jong (Barcelona) wins a free kick in the defensive half.
90'+2'Post update
Foul by Danny Namaso (FC Porto).
90'+1'Post update
Foul by Alejandro Balde (Barcelona).
90'+1'Post update
Francisco Conceição (FC Porto) wins a free kick in the attacking half.
90'Substitution
Substitution, FC Porto. Toni Martínez replaces Galeno.
90'Substitution
Substitution, FC Porto. Danny Namaso replaces Fábio Cardoso.
90'Substitution
Substitution, Barcelona. Lamine Yamal replaces Raphinha.
88'Post update
Corner, Barcelona. Conceded by Diogo Costa.
88'Post update
Attempt saved. Raphinha (Barcelona) left footed shot from the centre of the box is saved in the bottom right corner. Assisted by Ilkay Gündogan.
88'Post update
Attempt blocked. Raphinha (Barcelona) left footed shot from the right side of the box is blocked. Assisted by Ronald Araujo.
84'Post update
Robert Lewandowski (Barcelona) wins a free kick in the attacking half.
84'Post update
Foul by Nico González (FC Porto).
83'Post update
Attempt missed. Mehdi Taremi (FC Porto) header from the right side of the six yard box is too high. Assisted by Francisco Conceição with a cross following a corner.
83'Post update
Corner, FC Porto. Conceded by Ferran Torres.
83'Post update
Foul by Ilkay Gündogan (Barcelona).
Page 1 of 7rewindpreviousNavigate to the next pagenextNavigate to the last pageforward
Source: bbc.com