Arsenal qualified for the quarter-finals of the Champions League, defeating its guest, Porto, on penalties, 4-2, after the end of regular and extra time, with the Gunners winning 1-0, in the second leg of the final.
Leandro Trossard scored the only goal of the match in the 41st minute.
The first leg ended with Porto winning at home with a clean goal.
The first opportunity in the match came in the fourth minute, when Trossard directed a ball towards the far post of Porto's goal, and right-back Ben White followed it up to hit the top net from the outside.
Arsenal's right winger, Bukayo Saka, posed a clear threat, and he reached the outskirts of the penalty area, before directing a shot that goalkeeper Costa managed to parry, and moments later, Saka passed the ball to Martin Odegaard, who shot near the near post in the fourteenth minute.
Porto threatened its host's goal for the first time in the sixteenth minute, when Arsenal defender William Saliba headed the ball away and reached Evanilson, who fired a powerful shot that went slightly wide of the goal.
Porto almost opened the scoring in the 23rd minute, when Joao Mario caught the ball, passing inside the section area to Evanilson, who prepared it before shooting, but Arsenal goalkeeper David Raya saved the situation.
Trossard ran the ball past Joao Mario, before sending a cross, which Declan Rice tried to follow into the net to no avail in the 27th minute.
After a period in which the pace of play calmed down, Arsenal was able to open the scoring in the 41st minute, when Odegaard passed a through ball to Trossard, who calmly shot a shot from the left side, sliding the ball with his right towards the far post to score the net.
Porto started the second half trying to secure an equaliser, and Pepe Aquino's pass reached Francisco Conceicao, who directed a cross, which Evanilson prepared for himself before shooting a backhand overhead kick over the goal in the 49th minute.
Arsenal striker Kai Havertz's cross went to the onrushing Rice, whose attempt bounced off veteran defender Pepe in the 58th minute.
Arsenal scored a goal in the 68th minute through Odegaard, but the referee canceled it because Havertz clearly caught Pepe before the Norwegian midfielder shot his ball.
Pepe Aquino made his way with the ball, before firing a powerful low ball from outside the penalty area, which goalkeeper Raya parried in the 71st minute.
Brazilian striker Gabriel Jesus participated in the Arsenal squad instead of midfielder Jorginho, and almost left an immediate impact in the 84th minute, when the ball reached him inside the penalty area, but goalkeeper Costa blocked his attempt from a tight angle.
One minute later, the ball reached Saka on the right side. He dribbled past his marker before shooting, but Costa took control again.
In the first extra half, Porto had a chance to score an equalizer in the 100th minute, when substitute Mehdi Taremi received the ball on the left side and fired a shot with his right that went wide of Arsenal's goal.
Arsenal substitute striker Eddie Nketiah set up the ball to his teammate Saka, whose attempt inside the penalty area was rebounded by a defender in the 109th minute.
In the penalty shootout, Odegaard, Havertz, Saka and Rice scored for Arsenal, while Porto succeeded in scoring through Pepe Aquino and Grujic, and Wendel failed in his kick, which bounced off the post, and Galeno, whose kick was blocked by goalkeeper David Raya.