Os primeiros minutos de jogo foram bastante equilibrados, com as duas equipas a criar jogadas de perigo para a baliza adversária. No entanto, o campeão nacional mostrava ter mais dificuldades que a equipa da casa.

Aos 10 minutos de jogo, o Belenenses SAD consegue pôr Casillas a trabalhar, depois de uma combinação entre Fredy e Keita, no entanto, a bola acaba por sair por cima.

Aos 20 minutos de jogo, o FC Porto aproveita um contra-ataque para se dirigir à baliza do Belenenses SAD mas Herrera não consegue dar seguimento ao cruzamento de André Pereira. Na jogada seguinte, a equipa se Silas esteve muito perto de fazer o primeiro golo da partida. Felipe atrasa para Casillas, que remata contra Keita, que estava por perto, mas a bola sai pela linha de fundo.

A primeira grande oportunidade de golo para o campeão nacional aparece aos 23 minutos de jogo, quando Maxi Pereira cruza para André Pereira, que cabeceia mas a bola vai ao ferro.

Aos 26 minutos, uma falta sobre Alex Telles dá um livre à equipa de Sérgio Conceição, que Diogo Leite aproveita para estrear o marcador. O primeiro golo do jogador de 19 anos com a camisola do FC Porto.

Já aos 30 minutos de jogo, foi a vez da equipa da casa tentar a sua sorte de bola parada. Lucca bateu um pontapé livre, mas a bola bate na barreira e passa por cima da baliza do FC Porto. No seguimente deste lance, o Belenenses SAD ganha dois pontapés de canto seguidos, mas o campeão nacional ganha no jogo aéreo e afasta a bola da grande área.

Aos 34 minutos, a equipa de Sérgio Conceição reclama grande penalidade depois de Aboubakar cabecear e de a bola entrar em contacto com o braço do capitão dos azuis, Gonçalo Silva, mas o árbitro Carlos Xistra manda seguir. Já aos 38 minutos da partida, Matija Ljujic sai com problemas físicos e é substituído por Dálcio Gomes.

Ainda antes do intervalo, o FC Porto tenta um lance estudado numa bola parada, mas o esférico sai picado e Muriel segura sem qualquer perigo.

A segunda parte mal tinha começado e o FC Porto já tinha aumentado a vantagem no marcador. Menos de um minuto depois de voltar ao campo, Otávio aproveitou um erro da defesa do Belenenses SAD e fez o 2-0 para o campeão nacional.

Já aos 55 minutos de jogo, Carlos Xistra recorreu ao VAR para marcar grande penalidade a favor da equipa da casa, depois de Diogo Leite ter tocado na bola com o braço. Fredy cobra o penálti e reduz para o Belenenses SAD, 2-1 no marcador. Apenas três minutos depois, a equipa da casa esteve muito perto de empatar a partida no Jamor, quando Fredy assistiu Licá, que rematou à baliza do adversário, obrigando Casillas a uma grande defesa.

A primeira alteração na equipa de Sérgio Conceição surge aos 64 minutos. Sai André Pereira e entra Corona, um extremo puro com a intenção de parar Zakarya, que se mostra imparável. Mas, aos 75 minutos de jogo, o FC Porto continuava a mostrar dificuldades em tomar o controlo da bola e a equipa mantinha-se recuada e a não conseguir criar perigo a Muriel.

Aos 83 minutos, o Belenenses SAD chegou ao empate por Alhassane Keita. Fredy cruza para Keita cabecear para a baliza de Casillas, que não consegue defender. Erro da defesa do FC Porto que permitiu a Fredy fazer o cruzamento.

Já nos descontos, Carlos Xistra recorre ao VAR para assinalar grande penalidade a favor do FC Porto depois de Henrique tocar na bola com o braço, que Alex Telles não desperdiça e marca para dar vantagem à equipa de Sérgio Conceição.