Porto vs Estoril

31 October 2026 · Liga Portugal · 2026/27 · Referee Miguel Nogueira

Full time 4 – 0

Half-time: 1–0

  • Victor Froholdt 4’
  • Borja Sainz 64’
  • André Silva 70’
  • Gabri Veiga 73’

Match summary

Porto won comfortably, 4-0 at home to Estoril. Porto led 1-0 at half-time.

In the first half, Victor Froholdt put Porto ahead in the 4th minute. In the second half, Borja Sainz made it 2-0 in the 64th minute, André Silva made it 3-0 in the 70th minute, and Gabri Veiga made it 4-0 in the 73rd minute.

The chances backed that up: Porto created 3.10 expected goals (xG) from 24 shots to Estoril's 0.63 from 7.

Porto dominated the Liga Portugal matchday 10 fixture against Estoril, securing a comprehensive 4-0 victory after leading 1-0 at half-time. The home side controlled the territory and the tempo throughout the contest, registering 66 percent possession compared to Estoril's 34 percent. Porto accumulated 24 shots with 11 on target, while limiting the visitors to 7 total shots and 0 shots on target. The home team also dominated the attacking metrics with 101 attacks and 65 dangerous attacks, alongside 8 corners. Porto finished with an expected goals total of 3.10 to Estoril's 0.63, reflecting their overwhelming superiority on the pitch.

The scoring opened quickly when Victor Froholdt put Porto ahead in the 4th minute with a high xG chance, leaving the half-time score at 1-0. Jan Bednarek received a yellow card for Porto in the 34th minute. Following multiple substitutions for both sides in the second half, Porto extended their lead through Borja Sainz in the 64th minute. Substitute André Silva added a 3rd goal in the 70th minute, before Gabri Veiga scored the 4th goal in the 73rd minute to seal the 4-0 final scoreline.

Match stats

66% Possession 34%
24 Shots 7
11 Shots on target 0
8 Corners 0
101 Attacks 49
65 Dangerous attacks 15
581 Passes 316
88.8% Pass accuracy 79.1%
18 Tackles 12
13 Fouls 7
1 Yellow cards 0
0 Red cards 0
2 Offsides 1

Key events

Porto Estoril
Kick-off
Victor FroholdtLeft foot shot1-0 (Porto)
4’
Pablo RosarioShot on target
9’
PepêShot on target
10’
Jan BednarekShot on target
10’
Alberto CostaShot on target
25’
34’
Half-time1-0
46’
Second half underway
Samu AghehowaShot on target
52’
62’
Borja SainzRight foot shot2-0 (Porto)
64’
André SilvaRight foot shot3-0 (Porto)
70’
Gabri VeigaShot on target
70’
Gabri VeigaLeft foot shot4-0 (Porto)
73’
78’
SouzaShot on target
79’
Full-time4-0

How the chances added up

Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.

0 1 2 3 4 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 3.10 0.63 4’ Victor Froholdt (Porto), 1-0 4’ 64’ Borja Sainz (Porto), 2-0 64’ 70’ André Silva (Porto), 3-0 70’ 73’ Gabri Veiga (Porto), 4-0 73’ 0 1 2 3 4 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 3.10 0.63 4’ Victor Froholdt (Porto), 1-0 Froholdt 4’ 64’ Borja Sainz (Porto), 2-0 Sainz 64’ 70’ André Silva (Porto), 3-0 Silva 70’ 73’ Gabri Veiga (Porto), 4-0 Veiga 73’
Porto 3.10 xGEstoril 0.63 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Estoril attacking Porto attacking 
4’ Victor Froholdt (Porto), open play, 0.68 xG, goal 25’ Alberto Costa (Porto), open play, 0.46 xG, saved 70’ André Silva (Porto), open play, 0.46 xG, goal 73’ Gabri Veiga (Porto), open play, 0.34 xG, goal 72’ André Lacximicant (Estoril), open play, 0.28 xG, off target 52’ Samu Aghehowa (Porto), open play, 0.22 xG, saved 14’ Borja Sainz (Porto), open play, 0.14 xG, off target 70’ Gabri Veiga (Porto), open play, 0.12 xG, saved 54’ André Lacximicant (Estoril), open play, 0.12 xG, blocked 20’ Samu Aghehowa (Porto), open play, 0.09 xG, off target 4’ Borja Sainz (Porto), open play, 0.06 xG, off target 45’ Rafik Guitane (Estoril), open play, 0.06 xG, blocked 11’ Jan Bednarek (Porto), from a corner, 0.05 xG, off target 29’ Victor Froholdt (Porto), open play, 0.06 xG, blocked 32’ Samu Aghehowa (Porto), open play, 0.05 xG, off target 9’ Pablo Rosario (Porto), open play, 0.05 xG, saved 77’ Nail Omerović (Estoril), open play, 0.05 xG, blocked 78’ Nail Omerović (Estoril), open play, 0.05 xG, hit the woodwork 10’ Pepê (Porto), from a corner, 0.04 xG, saved 15’ Samu Aghehowa (Porto), open play, 0.04 xG, blocked 64’ Borja Sainz (Porto), open play, 0.04 xG, goal 86’ Xeka (Estoril), open play, 0.03 xG, off target 1’ André Lacximicant (Estoril), open play, 0.03 xG, off target 45’ Zaidu Sanusi (Porto), open play, 0.03 xG, blocked 79’ Souza (Porto), open play, 0.03 xG, saved 31’ Pablo Rosario (Porto), open play, 0.03 xG, blocked 61’ Jakub Kiwior (Porto), open play, 0.03 xG, blocked 36’ Pablo Rosario (Porto), open play, 0.03 xG, blocked 31’ Zaidu Sanusi (Porto), open play, 0.02 xG, blocked 10’ Jan Bednarek (Porto), from a corner, 0.02 xG, saved 85’ Alan Varela (Porto), open play, 0.01 xG, off target 4’ Victor Froholdt (Porto), open play, 0.68 xG, goal 25’ Alberto Costa (Porto), open play, 0.46 xG, saved 70’ André Silva (Porto), open play, 0.46 xG, goal 73’ Gabri Veiga (Porto), open play, 0.34 xG, goal 72’ André Lacximicant (Estoril), open play, 0.28 xG, off target 52’ Samu Aghehowa (Porto), open play, 0.22 xG, saved 14’ Borja Sainz (Porto), open play, 0.14 xG, off target 70’ Gabri Veiga (Porto), open play, 0.12 xG, saved 54’ André Lacximicant (Estoril), open play, 0.12 xG, blocked 20’ Samu Aghehowa (Porto), open play, 0.09 xG, off target 4’ Borja Sainz (Porto), open play, 0.06 xG, off target 45’ Rafik Guitane (Estoril), open play, 0.06 xG, blocked 29’ Victor Froholdt (Porto), open play, 0.06 xG, blocked 11’ Jan Bednarek (Porto), from a corner, 0.05 xG, off target 32’ Samu Aghehowa (Porto), open play, 0.05 xG, off target 9’ Pablo Rosario (Porto), open play, 0.05 xG, saved 77’ Nail Omerović (Estoril), open play, 0.05 xG, blocked 78’ Nail Omerović (Estoril), open play, 0.05 xG, hit the woodwork 10’ Pepê (Porto), from a corner, 0.04 xG, saved 15’ Samu Aghehowa (Porto), open play, 0.04 xG, blocked 64’ Borja Sainz (Porto), open play, 0.04 xG, goal 79’ Souza (Porto), open play, 0.03 xG, saved 86’ Xeka (Estoril), open play, 0.03 xG, off target 45’ Zaidu Sanusi (Porto), open play, 0.03 xG, blocked 1’ André Lacximicant (Estoril), open play, 0.03 xG, off target 31’ Pablo Rosario (Porto), open play, 0.03 xG, blocked 36’ Pablo Rosario (Porto), open play, 0.03 xG, blocked 61’ Jakub Kiwior (Porto), open play, 0.03 xG, blocked 31’ Zaidu Sanusi (Porto), open play, 0.02 xG, blocked 10’ Jan Bednarek (Porto), from a corner, 0.02 xG, saved 85’ Alan Varela (Porto), open play, 0.01 xG, off target
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

Porto 4-3-3 Starting XI
Costa
Sanusi 46’
Bednarek 74’
Kiwior
Costa 90’
Froholdt
Rosario
Veiga 74’
Sainz
Aghehowa 67’
Pepê 78’
Estoril 4-5-1 Starting XI
Turk
Andreou 62’
Ferro 74’
Tsoungui
Carvalho 90’
Parente
Sintes 62’
Arnolin 62’
Guitane
Peixinho 50’
Lacximicant

Player stats

Goalkeeper1 player
90′ 0 0 23 – – – – –
Defenders5 players
Alberto Costa Taken off
89′ 3 1 – 6 2 50 2 – – –
Jan Bednarek Taken off
74′ 1 2 1 4 3 62 1 – –
90′ 1 – 1 4 2 77 2 – – –
Zaidu Sanusi Taken off
45′ 1 – – 3 2 36 – – – –
Souza Came on as a substitute
45′ 2 1 – 5 3 18 – – – –
Midfielders8 players
90′ 1 – 40 1 – 1 1 1 3 – –
90′ – – 71 2 – 4 – 5 1 – –
Gabri Veiga Taken off
74′ 1 1 60 2 – 3 2 9 – 2 –
Pepê Taken off
78′ – 1 59 2 – – – – – – –
90′ 1 1 36 1 – – 1 3 1 – –
Alan Varela Came on as a substitute
16′ – – 11 – – – – – 1 – –
Seko Fofana Came on as a substitute
16′ – – 15 – – – – 1 1 – –
Gabriel Mec Came on as a substitute
12′ – – 1 – – 1 – 1 – – –
Forwards2 players
Samu Aghehowa Taken off
67′ – – 4 1 0.41 – 1 1 1 11 –
André Silva Came on as a substitute
23′ 1 – 1 1 0.46 – – 4 2 7 –
Came on Taken off Sent off Red is the most in that position for the team

Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.

Before kick-off

Porto win 83% Avg odds 1.13 Our estimate 74%
Draw 12% Avg odds 7.89 Our estimate 16%
Estoril win 5% Avg odds 16.91 Our estimate 10%

Chances implied by the average closing odds, with the bookmaker margin removed. Our estimate is the figure from before kick-off. How our figures work.

Form going into the game

Last five league games before this one, oldest first. Select one to open it.

Previous and next meeting

Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results and odds from football-data.co.uk.