Fare Guide
Estimated lowest fares found within 7 days


The cheapest airline(s) flying from Porto to Milan is Ryanair.
Travel Period: May 2025 - April 2026
The cheapest month(s) to fly from Porto to Milan is October.
-
May 2025
-
Jun 2025
-
Jul 2025
-
Aug 2025
-
Sep 2025
-
Oct 2025
-
Nov 2025
-
Dec 2025
-
Jan 2026
-
Feb 2026
-
Mar 2026
-
Apr 2026
The cheapest day(s) of the week to fly from Porto to Milan is Friday.
-
Sun Sunday
-
Mon Monday
-
Tue Tuesday
-
Wed Wednesday
-
Thu Thursday
-
Fri Friday
-
Sat Saturday
Flight Schedules
Last Updated: Wed, 2 Apr, 2025
-
Time
Earliest
- Earliest
- Latest
-
Depart
Earliest
- Earliest
- Latest
-
Arrive
- Earliest
- Latest
-
Duration
- Shortest
- Longest
-
Stopover
All
-
Airline
Filter by Airline
View All Airline
-
Availability
- M
- T
- W
- T
- F
- S
- S
-
06:35 OPO10:05 BGY2Hrs, 30m Direct
-
OPOPorto Airport 06:35 - BGY 10:05 2h 30m Direct
-
OPOPorto Airport 06:35
-
BGYMilan Bergamo/Orio al Serio Airport 10:05
- 2h 30m
- Direct
-
Ryanair (FR 4637)Boeing 737 800 -
Ryanair (FR 4637) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 800
-
07:10 OPO10:40 BGY2Hrs, 30m Direct
-
OPOPorto Airport 07:10 - BGY 10:40 2h 30m Direct
-
OPOPorto Airport 07:10
-
BGYMilan Bergamo/Orio al Serio Airport 10:40
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 Max 8 Passenger -
Ryanair (FR 4041) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 Max 8 Passenger
-
08:15 OPO11:45 BGY2Hrs, 30m Direct
-
OPOPorto Airport 08:15 - BGY 11:45 2h 30m Direct
-
OPOPorto Airport 08:15
-
BGYMilan Bergamo/Orio al Serio Airport 11:45
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
08:20 OPO11:50 BGY2Hrs, 30m Direct
-
OPOPorto Airport 08:20 - BGY 11:50 2h 30m Direct
-
OPOPorto Airport 08:20
-
BGYMilan Bergamo/Orio al Serio Airport 11:50
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- -
- -
- T
- -
- -
- -
- Boeing 737 800
-
09:45 OPO13:10 MXP2Hrs, 25m Direct
-
OPOPorto Airport 09:45 - MXP 13:10 2h 25m Direct
-
OPOPorto Airport 09:45
-
MXPMilan Malpensa Airport 13:10
- 2h 25m
- Direct
-
EasyJet (U2 3876)Airbus -
EasyJet (U2 3876) -
- -
- T
- -
- -
- -
- -
- -
- Airbus
-
09:50 OPO13:15 MXP2Hrs, 25m Direct
-
OPOPorto Airport 09:50 - MXP 13:15 2h 25m Direct
-
OPOPorto Airport 09:50
-
MXPMilan Malpensa Airport 13:15
- 2h 25m
- Direct
-
EasyJet (U2 3882)Airbus -
EasyJet (U2 3882) -
- -
- -
- -
- -
- -
- -
- S
- Airbus
-
10:25 OPO13:50 MXP2Hrs, 25m Direct
-
OPOPorto Airport 10:25 - MXP 13:50 2h 25m Direct
-
OPOPorto Airport 10:25
-
MXPMilan Malpensa Airport 13:50
- 2h 25m
- Direct
-
EasyJet (U2 3876)Airbus -
EasyJet (U2 3876) -
- -
- -
- -
- T
- -
- -
- -
- Airbus
-
10:40 OPO14:05 MXP2Hrs, 25m Direct
-
OPOPorto Airport 10:40 - MXP 14:05 2h 25m Direct
-
OPOPorto Airport 10:40
-
MXPMilan Malpensa Airport 14:05
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- W
- -
- -
- -
- -
- Boeing 737 800
-
14:15 OPO17:40 MXP2Hrs, 25m Direct
-
OPOPorto Airport 14:15 - MXP 17:40 2h 25m Direct
-
OPOPorto Airport 14:15
-
MXPMilan Malpensa Airport 17:40
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
14:45 OPO18:15 BGY2Hrs, 30m Direct
-
OPOPorto Airport 14:45 - BGY 18:15 2h 30m Direct
-
OPOPorto Airport 14:45
-
BGYMilan Bergamo/Orio al Serio Airport 18:15
- 2h 30m
- Direct
-
Ryanair (FR 4637)Boeing 737 800 -
Ryanair (FR 4637) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
14:50 OPO18:15 MXP2Hrs, 25m Direct
-
OPOPorto Airport 14:50 - MXP 18:15 2h 25m Direct
-
OPOPorto Airport 14:50
-
MXPMilan Malpensa Airport 18:15
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 800
-
15:10 OPO18:40 BGY2Hrs, 30m Direct
-
OPOPorto Airport 15:10 - BGY 18:40 2h 30m Direct
-
OPOPorto Airport 15:10
-
BGYMilan Bergamo/Orio al Serio Airport 18:40
- 2h 30m
- Direct
-
Ryanair (FR 4637)Boeing 737 800 -
Ryanair (FR 4637) -
- -
- -
- -
- T
- -
- -
- -
- Boeing 737 800
-
15:25 OPO18:45 MXP2Hrs, 20m Direct
-
OPOPorto Airport 15:25 - MXP 18:45 2h 20m Direct
-
OPOPorto Airport 15:25
-
MXPMilan Malpensa Airport 18:45
- 2h 20m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 800
-
15:30 OPO18:55 MXP2Hrs, 25m Direct
-
OPOPorto Airport 15:30 - MXP 18:55 2h 25m Direct
-
OPOPorto Airport 15:30
-
MXPMilan Malpensa Airport 18:55
- 2h 25m
- Direct
-
EasyJet (U2 3882)Airbus -
EasyJet (U2 3882) -
- -
- -
- -
- -
- F
- -
- -
- Airbus
-
15:40 OPO19:05 MXP2Hrs, 25m Direct
-
OPOPorto Airport 15:40 - MXP 19:05 2h 25m Direct
-
OPOPorto Airport 15:40
-
MXPMilan Malpensa Airport 19:05
- 2h 25m
- Direct
-
EasyJet (U2 3882)Airbus -
EasyJet (U2 3882) -
- -
- -
- -
- -
- -
- S
- -
- Airbus
-
16:00 OPO19:25 MXP2Hrs, 25m Direct
-
OPOPorto Airport 16:00 - MXP 19:25 2h 25m Direct
-
OPOPorto Airport 16:00
-
MXPMilan Malpensa Airport 19:25
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- -
- T
- -
- -
- -
- Boeing 737 800
-
16:10 OPO19:40 BGY2Hrs, 30m Direct
-
OPOPorto Airport 16:10 - BGY 19:40 2h 30m Direct
-
OPOPorto Airport 16:10
-
BGYMilan Bergamo/Orio al Serio Airport 19:40
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 800
-
17:05 OPO20:35 BGY2Hrs, 30m Direct
-
OPOPorto Airport 17:05 - BGY 20:35 2h 30m Direct
-
OPOPorto Airport 17:05
-
BGYMilan Bergamo/Orio al Serio Airport 20:35
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 800
-
17:05 OPO20:30 MXP2Hrs, 25m Direct
-
OPOPorto Airport 17:05 - MXP 20:30 2h 25m Direct
-
OPOPorto Airport 17:05
-
MXPMilan Malpensa Airport 20:30
- 2h 25m
- Direct
-
EasyJet (U2 7781)Airbus -
EasyJet (U2 7781) -
- -
- -
- W
- -
- -
- -
- -
- Airbus
-
17:10 OPO20:35 MXP2Hrs, 25m Direct
-
OPOPorto Airport 17:10 - MXP 20:35 2h 25m Direct
-
OPOPorto Airport 17:10
-
MXPMilan Malpensa Airport 20:35
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 800
-
17:15 OPO20:40 MXP2Hrs, 25m Direct
-
OPOPorto Airport 17:15 - MXP 20:40 2h 25m Direct
-
OPOPorto Airport 17:15
-
MXPMilan Malpensa Airport 20:40
- 2h 25m
- Direct
-
EasyJet (U2 7781)Airbus -
EasyJet (U2 7781) -
- -
- -
- -
- T
- -
- -
- -
- Airbus
-
17:35 OPO21:00 MXP2Hrs, 25m Direct
-
OPOPorto Airport 17:35 - MXP 21:00 2h 25m Direct
-
OPOPorto Airport 17:35
-
MXPMilan Malpensa Airport 21:00
- 2h 25m
- Direct
-
EasyJet (U2 3882)Airbus -
EasyJet (U2 3882) -
- -
- T
- -
- -
- -
- -
- -
- Airbus
-
19:50 OPO23:20 BGY2Hrs, 30m Direct
-
OPOPorto Airport 19:50 - BGY 23:20 2h 30m Direct
-
OPOPorto Airport 19:50
-
BGYMilan Bergamo/Orio al Serio Airport 23:20
- 2h 30m
- Direct
-
Ryanair (FR 4637)Boeing 737 800 -
Ryanair (FR 4637) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 800
-
20:05 OPO23:35 BGY2Hrs, 30m Direct
-
OPOPorto Airport 20:05 - BGY 23:35 2h 30m Direct
-
OPOPorto Airport 20:05
-
BGYMilan Bergamo/Orio al Serio Airport 23:35
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 Max 8 Passenger -
Ryanair (FR 4041) -
- -
- -
- W
- -
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
21:40 OPO01:00 MXP2Hrs, 20m Direct
-
OPOPorto Airport 21:40 - MXP 01:00 2h 20m Direct
-
OPOPorto Airport 21:40
-
MXPMilan Malpensa Airport 01:00
- 2h 20m
- Direct
-
Ryanair (FR 8953)Boeing 737 Max 8 Passenger -
Ryanair (FR 8953) -
- -
- -
- -
- T
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
22:10 OPO01:35 MXP2Hrs, 25m Direct
-
OPOPorto Airport 22:10 - MXP 01:35 2h 25m Direct
-
OPOPorto Airport 22:10
-
MXPMilan Malpensa Airport 01:35
- 2h 25m
- Direct
-
EasyJet (U2 3876)Airbus -
EasyJet (U2 3876) -
- -
- -
- -
- -
- -
- -
- S
- Airbus
-
22:30 OPO01:55 MXP2Hrs, 25m Direct
-
OPOPorto Airport 22:30 - MXP 01:55 2h 25m Direct
-
OPOPorto Airport 22:30
-
MXPMilan Malpensa Airport 01:55
- 2h 25m
- Direct
-
EasyJet (U2 3882)Airbus -
EasyJet (U2 3882) -
- M
- -
- -
- -
- -
- -
- -
- Airbus
-
05:00 OPO12:00 LIN6Hrs, 00m 1 Stop (AMS)
-
OPOPorto Airport 05:00 - LIN 12:00 6h 1 Stop (AMS) Amsterdam
-
OPOPorto Airport 05:00AMSAmsterdam Airport 10:20
-
AMSAmsterdam Airport 08:30LINMilan Linate Airport 12:00
- 6h (1h 50m)
- 1 Stop AMS · Amsterdam 1h 50m
-
KLM (KL 1570)Boeing 737 800 KLM (KL 1597)Boeing 737 800 -
KLM (KL 1570) -
- -
- -
- -
- -
- -
- -
- S
-
05:05 OPO11:00 MXP4Hrs, 55m 1 Stop (LIS)
-
OPOPorto Airport 05:05 - MXP 11:00 4h 55m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 05:05LISLisbon Airport 07:15
-
LISLisbon Airport 05:55MXPMilan Malpensa Airport 11:00
- 4h 55m (1h 20m)
- 1 Stop LIS · Lisbon 1h 20m
-
TAP Air Portugal (TP 1937)Embraer Emb E90 TAP Air Portugal (TP 822)Airbus -
TAP Air Portugal (TP 1937) -
- -
- -
- -
- -
- -
- -
- S
-
06:00 OPO13:55 MXP6Hrs, 55m 1 Stop (FRA)
-
OPOPorto Airport 06:00 - MXP 13:55 6h 55m 1 Stop (FRA) Frankfurt
-
OPOPorto Airport 06:00FRAFrankfurt International Airport 12:35
-
FRAFrankfurt International Airport 09:45MXPMilan Malpensa Airport 13:55
- 6h 55m (2h 50m)
- 1 Stop FRA · Frankfurt 2h 50m
-
Lufthansa (LH 1181)Airbus Air Dolomiti (EN 8810)Embraer 195 -
Lufthansa (LH 1181) -
- M
- T
- W
- T
- F
- S
- S
-
06:00 OPO12:00 LIN5Hrs, 00m 1 Stop (FRA)
-
OPOPorto Airport 06:00 - LIN 12:00 5h 1 Stop (FRA) Frankfurt
-
OPOPorto Airport 06:00FRAFrankfurt International Airport 10:45
-
FRAFrankfurt International Airport 09:45LINMilan Linate Airport 12:00
- 5h (1h)
- 1 Stop FRA · Frankfurt 1h
-
Lufthansa (LH 1181)Airbus Lufthansa (LH 272)Airbus -
Lufthansa (LH 1181) -
- M
- -
- -
- T
- -
- -
- -
-
06:00 OPO12:00 LIN5Hrs, 00m 1 Stop (FRA)
-
OPOPorto Airport 06:00 - LIN 12:00 5h 1 Stop (FRA) Frankfurt
-
OPOPorto Airport 06:00FRAFrankfurt International Airport 10:45
-
FRAFrankfurt International Airport 09:45LINMilan Linate Airport 12:00
- 5h (1h)
- 1 Stop FRA · Frankfurt 1h
-
Lufthansa (LH 1181)Airbus Lufthansa (LH 272)Airbus Industrie A320 Sharklets -
Lufthansa (LH 1181) -
- -
- -
- -
- -
- -
- S
- -
-
06:00 OPO12:00 LIN5Hrs, 00m 1 Stop (FRA)
-
OPOPorto Airport 06:00 - LIN 12:00 5h 1 Stop (FRA) Frankfurt
-
OPOPorto Airport 06:00FRAFrankfurt International Airport 10:45
-
FRAFrankfurt International Airport 09:45LINMilan Linate Airport 12:00
- 5h (1h)
- 1 Stop FRA · Frankfurt 1h
-
Lufthansa (LH 1181)Airbus Lufthansa (LH 272)Airbus -
Lufthansa (LH 1181) -
- -
- T
- W
- -
- F
- -
- S
-
06:10 OPO12:10 BGY5Hrs, 00m 1 Stop (CAG)
-
OPOPorto Airport 06:10 - BGY 12:10 5h 1 Stop (CAG) Cagliari
-
OPOPorto Airport 06:10CAGCagliari Airport 10:40
-
CAGCagliari Airport 09:40BGYMilan Bergamo/Orio al Serio Airport 12:10
- 5h (1h)
- 1 Stop CAG · Cagliari 1h
-
Ryanair (FR 5265)Boeing 737 800 Ryanair (FR 4707)Boeing 737 800 -
Ryanair (FR 5265) -
- -
- -
- -
- T
- -
- -
- -
-
06:15 OPO11:50 BGY4Hrs, 35m 1 Stop (SVQ)
-
OPOPorto Airport 06:15 - BGY 11:50 4h 35m 1 Stop (SVQ) Seville
-
OPOPorto Airport 06:15SVQSevilla Airport 09:15
-
SVQSevilla Airport 08:30BGYMilan Bergamo/Orio al Serio Airport 11:50
- 4h 35m (45m)
- 1 Stop SVQ · Seville 45m
-
Ryanair (FR 5510)Boeing 737 Max 8 Passenger Ryanair (FR 77)Boeing 737 800 -
Ryanair (FR 5510) -
- -
- -
- -
- -
- -
- S
- -
-
06:25 OPO13:40 BGY6Hrs, 15m 1 Stop (AGP)
-
OPOPorto Airport 06:25 - BGY 13:40 6h 15m 1 Stop (AGP) Malaga
-
OPOPorto Airport 06:25AGPMalaga Airport 11:05
-
AGPMalaga Airport 08:50BGYMilan Bergamo/Orio al Serio Airport 13:40
- 6h 15m (2h 15m)
- 1 Stop AGP · Malaga 2h 15m
-
Ryanair (FR 7634)Boeing 737 800 Ryanair (FR 3399)Boeing 737 800 -
Ryanair (FR 7634) -
- -
- -
- -
- -
- F
- -
- -
-
06:25 OPO13:50 BGY6Hrs, 25m 1 Stop (LUX)
-
OPOPorto Airport 06:25 - BGY 13:50 6h 25m 1 Stop (LUX) Luxembourg
-
OPOPorto Airport 06:25LUXLuxembourg Airport 12:30
-
LUXLuxembourg Airport 09:50BGYMilan Bergamo/Orio al Serio Airport 13:50
- 6h 25m (2h 40m)
- 1 Stop LUX · Luxembourg 2h 40m
-
Ryanair (FR 2862)Boeing 737 Max 8 Passenger Ryanair (FR 411)Boeing 737 800 -
Ryanair (FR 2862) -
- -
- -
- -
- T
- -
- -
- -
-
06:30 OPO13:05 BGY5Hrs, 35m 1 Stop (CRL)
-
OPOPorto Airport 06:30 - BGY 13:05 5h 35m 1 Stop (CRL) Brussels
-
OPOPorto Airport 06:30CRLBrussels S. Charleroi Airport 11:35
-
CRLBrussels S. Charleroi Airport 09:55BGYMilan Bergamo/Orio al Serio Airport 13:05
- 5h 35m (1h 40m)
- 1 Stop CRL · Brussels 1h 40m
-
Ryanair (FR 1387)Boeing 737 Max 8 Passenger Ryanair (FR 3660)Boeing 737 800 -
Ryanair (FR 1387) -
- -
- -
- W
- -
- -
- -
- -
-
06:35 OPO13:55 LIN6Hrs, 20m 1 Stop (CDG)
-
OPOPorto Airport 06:35 - LIN 13:55 6h 20m 1 Stop (CDG) Paris
-
OPOPorto Airport 06:35CDGParis Charles de Gaulle Airport 12:25
-
CDGParis Charles de Gaulle Airport 09:50LINMilan Linate Airport 13:55
- 6h 20m (2h 35m)
- 1 Stop CDG · Paris 2h 35m
-
Air France (AF 1517)Embraer Emb E90 Air France (AF 1012)Airbus -
Air France (AF 1517) -
- -
- -
- -
- -
- -
- -
- S
-
06:45 OPO13:50 BGY6Hrs, 05m 1 Stop (VLC)
-
OPOPorto Airport 06:45 - BGY 13:50 6h 05m 1 Stop (VLC) Valencia
-
OPOPorto Airport 06:45VLCValencia Airport 11:55
-
VLCValencia Airport 09:15BGYMilan Bergamo/Orio al Serio Airport 13:50
- 6h 05m (2h 40m)
- 1 Stop VLC · Valencia 2h 40m
-
Ryanair (FR 1710)Boeing 737 Max 8 Passenger Ryanair (FR 496)Boeing 737 Max 8 Passenger -
Ryanair (FR 1710) -
- -
- -
- -
- -
- -
- S
- -
-
07:05 OPO12:00 BGY3Hrs, 55m 1 Stop (MRS)
-
OPOPorto Airport 07:05 - BGY 12:00 3h 55m 1 Stop (MRS) Marseille
-
OPOPorto Airport 07:05MRSMarseille Provence Airport 10:50
-
MRSMarseille Provence Airport 10:05BGYMilan Bergamo/Orio al Serio Airport 12:00
- 3h 55m (45m)
- 1 Stop MRS · Marseille 45m
-
Ryanair (FR 6532)Boeing 737 800 Ryanair (FR 1852)Boeing 737 800 -
Ryanair (FR 6532) -
- -
- -
- W
- -
- -
- -
- -
-
07:10 OPO13:15 MXP5Hrs, 05m 1 Stop (BCN)
-
OPOPorto Airport 07:10 - MXP 13:15 5h 05m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:10BCNBarcelona Airport 11:30
-
BCNBarcelona Airport 10:00MXPMilan Malpensa Airport 13:15
- 5h 05m (1h 30m)
- 1 Stop BCN · Barcelona 1h 30m
-
Ryanair (FR 4584)Boeing 737 800 Ryanair (FR 269)Boeing 737 800 -
Ryanair (FR 4584) -
- -
- -
- -
- -
- F
- -
- -
-
07:10 OPO14:50 BGY6Hrs, 40m 1 Stop (BCN)
-
OPOPorto Airport 07:10 - BGY 14:50 6h 40m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:10BCNBarcelona Airport 13:05
-
BCNBarcelona Airport 10:00BGYMilan Bergamo/Orio al Serio Airport 14:50
- 6h 40m (3h 05m)
- 1 Stop BCN · Barcelona 3h 05m
-
Ryanair (FR 4584)Boeing 737 800 Ryanair (FR 846)Boeing 737 800 -
Ryanair (FR 4584) -
- -
- -
- W
- -
- -
- -
- -
-
07:20 OPO15:20 BGY7Hrs, 00m 1 Stop (MAD)
-
OPOPorto Airport 07:20 - BGY 15:20 7h 1 Stop (MAD) Madrid
-
OPOPorto Airport 07:20MADMadrid Barajas Airport 13:05
-
MADMadrid Barajas Airport 09:40BGYMilan Bergamo/Orio al Serio Airport 15:20
- 7h (3h 25m)
- 1 Stop MAD · Madrid 3h 25m
-
Ryanair (FR 5483)Boeing 737 800 Ryanair (FR 5323)Boeing 737 800 -
Ryanair (FR 5483) -
- -
- -
- -
- -
- F
- -
- -
-
07:35 OPO14:00 MXP5Hrs, 25m 1 Stop (BCN)
-
OPOPorto Airport 07:35 - MXP 14:00 5h 25m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:35BCNBarcelona Airport 12:15
-
BCNBarcelona Airport 10:25MXPMilan Malpensa Airport 14:00
- 5h 25m (1h 50m)
- 1 Stop BCN · Barcelona 1h 50m
-
Ryanair (FR 4546)Boeing 737 800 Ryanair (FR 7541)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- T
- -
- -
- -
- -
- -
-
07:35 OPO14:30 BGY5Hrs, 55m 1 Stop (BCN)
-
OPOPorto Airport 07:35 - BGY 14:30 5h 55m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:35BCNBarcelona Airport 12:45
-
BCNBarcelona Airport 10:25BGYMilan Bergamo/Orio al Serio Airport 14:30
- 5h 55m (2h 20m)
- 1 Stop BCN · Barcelona 2h 20m
-
Ryanair (FR 4546)Boeing 737 800 Ryanair (FR 3143)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- T
- -
- -
- -
- -
- -
-
07:55 OPO14:35 BGY5Hrs, 40m 1 Stop (CGN)
-
OPOPorto Airport 07:55 - BGY 14:35 5h 40m 1 Stop (CGN) Cologne
-
OPOPorto Airport 07:55CGNCologne/Bonn Airport 13:05
-
CGNCologne/Bonn Airport 11:35BGYMilan Bergamo/Orio al Serio Airport 14:35
- 5h 40m (1h 30m)
- 1 Stop CGN · Cologne 1h 30m
-
Ryanair (FR 9972)Boeing 737 800 Ryanair (FR 5550)Boeing 737 800 -
Ryanair (FR 9972) -
- -
- T
- -
- -
- -
- -
- -
-
08:20 OPO15:15 MXP5Hrs, 55m 1 Stop (LUX)
-
OPOPorto Airport 08:20 - MXP 15:15 5h 55m 1 Stop (LUX) Luxembourg
-
OPOPorto Airport 08:20LUXLuxembourg Airport 14:00
-
LUXLuxembourg Airport 11:40MXPMilan Malpensa Airport 15:15
- 5h 55m (2h 20m)
- 1 Stop LUX · Luxembourg 2h 20m
-
Luxair (LG 3770)Boeing 737 700 Luxair (LG 6995)Dehavilland Dash 8 400 -
Luxair (LG 3770) -
- -
- T
- -
- -
- -
- -
- -
-
08:20 OPO15:45 MXP6Hrs, 25m 1 Stop (LUX)
-
OPOPorto Airport 08:20 - MXP 15:45 6h 25m 1 Stop (LUX) Luxembourg
-
OPOPorto Airport 08:20LUXLuxembourg Airport 14:30
-
LUXLuxembourg Airport 11:40MXPMilan Malpensa Airport 15:45
- 6h 25m (2h 50m)
- 1 Stop LUX · Luxembourg 2h 50m
-
Luxair (LG 3770)Boeing 737 700 Luxair (LG 6995)Dehavilland Dash 8 400 -
Luxair (LG 3770) -
- -
- -
- W
- -
- -
- -
- -
-
08:35 OPO16:05 MXP6Hrs, 30m 1 Stop (BCN)
-
OPOPorto Airport 08:35 - MXP 16:05 6h 30m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:35BCNBarcelona Airport 14:20
-
BCNBarcelona Airport 11:20MXPMilan Malpensa Airport 16:05
- 6h 30m (3h)
- 1 Stop BCN · Barcelona 3h
-
Vueling Airlines (VY 8477)Airbus Industrie A320 Sharklets Vueling Airlines (VY 6332)Airbus -
Vueling Airlines (VY 8477) -
- M
- -
- -
- -
- -
- -
- -
-
08:35 OPO14:35 MXP5Hrs, 00m 1 Stop (BCN)
-
OPOPorto Airport 08:35 - MXP 14:35 5h 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:35BCNBarcelona Airport 12:50
-
BCNBarcelona Airport 11:20MXPMilan Malpensa Airport 14:35
- 5h (1h 30m)
- 1 Stop BCN · Barcelona 1h 30m
-
Vueling Airlines (VY 8477)Airbus Industrie A320 Sharklets Vueling Airlines (VY 6340)Airbus -
Vueling Airlines (VY 8477) -
- M
- -
- -
- -
- -
- -
- -
-
08:40 OPO16:15 MXP6Hrs, 35m 1 Stop (BCN)
-
OPOPorto Airport 08:40 - MXP 16:15 6h 35m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:40BCNBarcelona Airport 14:30
-
BCNBarcelona Airport 11:25MXPMilan Malpensa Airport 16:15
- 6h 35m (3h 05m)
- 1 Stop BCN · Barcelona 3h 05m
-
Vueling Airlines (VY 8477)Airbus Vueling Airlines (VY 6332)Airbus -
Vueling Airlines (VY 8477) -
- -
- -
- -
- -
- F
- -
- -
-
08:40 OPO14:00 MXP4Hrs, 20m 1 Stop (ZRH)
-
OPOPorto Airport 08:40 - MXP 14:00 4h 20m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 08:40ZRHZurich Airport 13:05
-
ZRHZurich Airport 12:10MXPMilan Malpensa Airport 14:00
- 4h 20m (55m)
- 1 Stop ZRH · Zurich 55m
-
Swiss (LX 2061)Embraer 195 E2 Swiss (LX 1628)Embraer Emb E90 -
Swiss (LX 2061) -
- -
- -
- -
- -
- F
- -
- -
-
08:40 OPO14:00 MXP4Hrs, 20m 1 Stop (ZRH)
-
OPOPorto Airport 08:40 - MXP 14:00 4h 20m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 08:40ZRHZurich Airport 13:05
-
ZRHZurich Airport 12:10MXPMilan Malpensa Airport 14:00
- 4h 20m (55m)
- 1 Stop ZRH · Zurich 55m
-
Swiss (LX 2061)Airbus A321 Neo Swiss (LX 1628)Embraer Emb E90 -
Swiss (LX 2061) -
- -
- -
- -
- -
- -
- S
- -
-
08:40 OPO16:05 MXP6Hrs, 25m 1 Stop (BCN)
-
OPOPorto Airport 08:40 - MXP 16:05 6h 25m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:40BCNBarcelona Airport 14:20
-
BCNBarcelona Airport 11:25MXPMilan Malpensa Airport 16:05
- 6h 25m (2h 55m)
- 1 Stop BCN · Barcelona 2h 55m
-
Vueling Airlines (VY 8477)Airbus Vueling Airlines (VY 6332)Airbus -
Vueling Airlines (VY 8477) -
- -
- T
- -
- -
- -
- -
- -
-
08:40 OPO14:00 MXP4Hrs, 20m 1 Stop (ZRH)
-
OPOPorto Airport 08:40 - MXP 14:00 4h 20m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 08:40ZRHZurich Airport 13:05
-
ZRHZurich Airport 12:10MXPMilan Malpensa Airport 14:00
- 4h 20m (55m)
- 1 Stop ZRH · Zurich 55m
-
Swiss (LX 2061)Airbus A220 300 Swiss (LX 1628)Embraer 195 E2 -
Swiss (LX 2061) -
- -
- -
- W
- -
- -
- -
- -
-
08:40 OPO14:05 MXP4Hrs, 25m 1 Stop (ZRH)
-
OPOPorto Airport 08:40 - MXP 14:05 4h 25m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 08:40ZRHZurich Airport 13:10
-
ZRHZurich Airport 12:10MXPMilan Malpensa Airport 14:05
- 4h 25m (1h)
- 1 Stop ZRH · Zurich 1h
-
Swiss (LX 2061)Airbus Swiss (LX 1628)Embraer 190 E2 -
Swiss (LX 2061) -
- -
- -
- -
- -
- -
- -
- S
-
08:40 OPO16:05 MXP6Hrs, 25m 1 Stop (BCN)
-
OPOPorto Airport 08:40 - MXP 16:05 6h 25m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:40BCNBarcelona Airport 14:20
-
BCNBarcelona Airport 11:25MXPMilan Malpensa Airport 16:05
- 6h 25m (2h 55m)
- 1 Stop BCN · Barcelona 2h 55m
-
Vueling Airlines (VY 8477)Airbus Vueling Airlines (VY 6332)Airbus Industrie A320 Sharklets -
Vueling Airlines (VY 8477) -
- -
- -
- W
- -
- -
- -
- -
-
08:40 OPO14:00 MXP4Hrs, 20m 1 Stop (ZRH)
-
OPOPorto Airport 08:40 - MXP 14:00 4h 20m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 08:40ZRHZurich Airport 13:05
-
ZRHZurich Airport 12:10MXPMilan Malpensa Airport 14:00
- 4h 20m (55m)
- 1 Stop ZRH · Zurich 55m
-
Swiss (LX 2061)Airbus A320 Neo Swiss (LX 1628)Embraer 190 E2 -
Swiss (LX 2061) -
- -
- -
- -
- T
- -
- -
- -
-
08:40 OPO16:10 MXP6Hrs, 30m 1 Stop (BCN)
-
OPOPorto Airport 08:40 - MXP 16:10 6h 30m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:40BCNBarcelona Airport 14:25
-
BCNBarcelona Airport 11:25MXPMilan Malpensa Airport 16:10
- 6h 30m (3h)
- 1 Stop BCN · Barcelona 3h
-
Vueling Airlines (VY 8477)Airbus Vueling Airlines (VY 6332)Airbus -
Vueling Airlines (VY 8477) -
- -
- -
- -
- T
- -
- -
- S
-
08:40 OPO14:00 MXP4Hrs, 20m 1 Stop (ZRH)
-
OPOPorto Airport 08:40 - MXP 14:00 4h 20m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 08:40ZRHZurich Airport 12:55
-
ZRHZurich Airport 12:10MXPMilan Malpensa Airport 14:00
- 4h 20m (45m)
- 1 Stop ZRH · Zurich 45m
-
Swiss (LX 2061)Airbus Swiss (LX 1628)Embraer 195 -
Swiss (LX 2061) -
- -
- T
- -
- -
- -
- -
- -
-
08:50 OPO16:25 MXP6Hrs, 35m 1 Stop (LIS)
-
OPOPorto Airport 08:50 - MXP 16:25 6h 35m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 08:50LISLisbon Airport 12:40
-
LISLisbon Airport 10:00MXPMilan Malpensa Airport 16:25
- 6h 35m (2h 40m)
- 1 Stop LIS · Lisbon 2h 40m
-
TAP Air Portugal (TP 1921)Airbus TAP Air Portugal (TP 824)Airbus A320 Neo -
TAP Air Portugal (TP 1921) -
- M
- -
- -
- -
- -
- -
- -
-
08:55 OPO16:25 MXP6Hrs, 30m 1 Stop (LIS)
-
OPOPorto Airport 08:55 - MXP 16:25 6h 30m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 08:55LISLisbon Airport 12:40
-
LISLisbon Airport 10:00MXPMilan Malpensa Airport 16:25
- 6h 30m (2h 40m)
- 1 Stop LIS · Lisbon 2h 40m
-
TAP Air Portugal (TP 1921)Airbus A320 Neo TAP Air Portugal (TP 824)Airbus A320 Neo -
TAP Air Portugal (TP 1921) -
- -
- -
- W
- -
- -
- -
- -
-
09:00 OPO16:25 MXP6Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 09:00 - MXP 16:25 6h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 09:00LISLisbon Airport 12:40
-
LISLisbon Airport 09:55MXPMilan Malpensa Airport 16:25
- 6h 25m (2h 45m)
- 1 Stop LIS · Lisbon 2h 45m
-
TAP Air Portugal (TP 1921)Airbus TAP Air Portugal (TP 824)Airbus A321 Neo -
TAP Air Portugal (TP 1921) -
- -
- T
- -
- -
- -
- -
- -
-
09:00 OPO16:25 MXP6Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 09:00 - MXP 16:25 6h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 09:00LISLisbon Airport 12:40
-
LISLisbon Airport 09:55MXPMilan Malpensa Airport 16:25
- 6h 25m (2h 45m)
- 1 Stop LIS · Lisbon 2h 45m
-
TAP Air Portugal (TP 1921)Airbus A320 Neo TAP Air Portugal (TP 824)Airbus A321 Neo -
TAP Air Portugal (TP 1921) -
- -
- -
- -
- -
- -
- -
- S
-
09:00 OPO16:25 MXP6Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 09:00 - MXP 16:25 6h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 09:00LISLisbon Airport 12:40
-
LISLisbon Airport 10:00MXPMilan Malpensa Airport 16:25
- 6h 25m (2h 40m)
- 1 Stop LIS · Lisbon 2h 40m
-
TAP Air Portugal (TP 1921)Airbus A320 Neo TAP Air Portugal (TP 824)Airbus -
TAP Air Portugal (TP 1921) -
- -
- -
- -
- -
- F
- -
- -
-
09:00 OPO16:25 MXP6Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 09:00 - MXP 16:25 6h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 09:00LISLisbon Airport 12:40
-
LISLisbon Airport 10:00MXPMilan Malpensa Airport 16:25
- 6h 25m (2h 40m)
- 1 Stop LIS · Lisbon 2h 40m
-
TAP Air Portugal (TP 1921)Airbus TAP Air Portugal (TP 824)Airbus A321 Neo -
TAP Air Portugal (TP 1921) -
- -
- -
- -
- T
- -
- -
- -
-
09:45 OPO15:35 MXP4Hrs, 50m 1 Stop (PMI)
-
OPOPorto Airport 09:45 - MXP 15:35 4h 50m 1 Stop (PMI) Palma de Mallorca
-
OPOPorto Airport 09:45PMIPalma De Mallorca Airport 13:55
-
PMIPalma De Mallorca Airport 12:35MXPMilan Malpensa Airport 15:35
- 4h 50m (1h 20m)
- 1 Stop PMI · Palma de Mallorca 1h 20m
-
Ryanair (FR 6750)Boeing 737 800 Ryanair (FR 8636)Boeing 737 800 -
Ryanair (FR 6750) -
- -
- T
- -
- -
- -
- -
- -
-
09:50 OPO15:40 MXP4Hrs, 50m 1 Stop (PMI)
-
OPOPorto Airport 09:50 - MXP 15:40 4h 50m 1 Stop (PMI) Palma de Mallorca
-
OPOPorto Airport 09:50PMIPalma De Mallorca Airport 13:50
-
PMIPalma De Mallorca Airport 12:35MXPMilan Malpensa Airport 15:40
- 4h 50m (1h 15m)
- 1 Stop PMI · Palma de Mallorca 1h 15m
-
Ryanair (FR 6750)Boeing 737 800 Ryanair (FR 1581)Boeing 737 800 -
Ryanair (FR 6750) -
- -
- -
- -
- -
- -
- S
- -
-
10:00 OPO16:25 MXP5Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 10:00 - MXP 16:25 5h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 10:00LISLisbon Airport 12:40
-
LISLisbon Airport 11:00MXPMilan Malpensa Airport 16:25
- 5h 25m (1h 40m)
- 1 Stop LIS · Lisbon 1h 40m
-
TAP Air Portugal (TP 1923)Embraer Emb E90 TAP Air Portugal (TP 824)Airbus A321 Neo -
TAP Air Portugal (TP 1923) -
- -
- -
- -
- T
- -
- -
- -
-
10:00 OPO16:25 MXP5Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 10:00 - MXP 16:25 5h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 10:00LISLisbon Airport 12:40
-
LISLisbon Airport 11:00MXPMilan Malpensa Airport 16:25
- 5h 25m (1h 40m)
- 1 Stop LIS · Lisbon 1h 40m
-
TAP Air Portugal (TP 1923)Airbus A321 Neo TAP Air Portugal (TP 824)Airbus -
TAP Air Portugal (TP 1923) -
- -
- -
- -
- -
- F
- -
- -
-
10:00 OPO16:25 MXP5Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 10:00 - MXP 16:25 5h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 10:00LISLisbon Airport 12:40
-
LISLisbon Airport 10:50MXPMilan Malpensa Airport 16:25
- 5h 25m (1h 50m)
- 1 Stop LIS · Lisbon 1h 50m
-
TAP Air Portugal (TP 1923)Airbus TAP Air Portugal (TP 824)Airbus A321 Neo -
TAP Air Portugal (TP 1923) -
- -
- -
- -
- -
- -
- -
- S
-
10:00 OPO16:55 MXP5Hrs, 55m 1 Stop (LIS)
-
OPOPorto Airport 10:00 - MXP 16:55 5h 55m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 10:00LISLisbon Airport 13:10
-
LISLisbon Airport 11:00MXPMilan Malpensa Airport 16:55
- 5h 55m (2h 10m)
- 1 Stop LIS · Lisbon 2h 10m
-
TAP Air Portugal (TP 1923)Embraer Emb E90 TAP Air Portugal (TP 824)Airbus A320 Neo -
TAP Air Portugal (TP 1923) -
- -
- -
- -
- -
- -
- S
- -
-
10:00 OPO16:25 MXP5Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 10:00 - MXP 16:25 5h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 10:00LISLisbon Airport 12:40
-
LISLisbon Airport 11:00MXPMilan Malpensa Airport 16:25
- 5h 25m (1h 40m)
- 1 Stop LIS · Lisbon 1h 40m
-
TAP Air Portugal (TP 1923)Airbus TAP Air Portugal (TP 824)Airbus A320 Neo -
TAP Air Portugal (TP 1923) -
- -
- -
- W
- -
- -
- -
- -
-
10:00 OPO16:25 MXP5Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 10:00 - MXP 16:25 5h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 10:00LISLisbon Airport 12:40
-
LISLisbon Airport 11:00MXPMilan Malpensa Airport 16:25
- 5h 25m (1h 40m)
- 1 Stop LIS · Lisbon 1h 40m
-
TAP Air Portugal (TP 1923)Airbus TAP Air Portugal (TP 824)Airbus A321 Neo -
TAP Air Portugal (TP 1923) -
- -
- T
- -
- -
- -
- -
- -
-
10:00 OPO16:25 MXP5Hrs, 25m 1 Stop (LIS)
-
OPOPorto Airport 10:00 - MXP 16:25 5h 25m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 10:00LISLisbon Airport 12:40
-
LISLisbon Airport 11:00MXPMilan Malpensa Airport 16:25
- 5h 25m (1h 40m)
- 1 Stop LIS · Lisbon 1h 40m
-
TAP Air Portugal (TP 1923)Airbus A321 Neo TAP Air Portugal (TP 824)Airbus A320 Neo -
TAP Air Portugal (TP 1923) -
- M
- -
- -
- -
- -
- -
- -
-
10:05 OPO17:55 BGY6Hrs, 50m 1 Stop (MAN)
-
OPOPorto Airport 10:05 - BGY 17:55 6h 50m 1 Stop (MAN) Manchester
-
OPOPorto Airport 10:05MANManchester International Airport 14:45
-
MANManchester International Airport 12:30BGYMilan Bergamo/Orio al Serio Airport 17:55
- 6h 50m (2h 15m)
- 1 Stop MAN · Manchester 2h 15m
-
Ryanair (FR 1174)Boeing 737 800 Ryanair (FR 3218)Boeing 737 800 -
Ryanair (FR 1174) -
- M
- -
- -
- -
- -
- -
- -
The fastest flight time for direct flights from Porto to Milan is 2 hours 20 minutes. Check latest flight schedules & prices on Wego.
The most popular airline flying from Porto to Milan is Ryanair. Find the latest flight deals on Wego.
The flight distance between Porto and Milan is 1515km. Check all available flights on Wego.
The earliest flight of the day departs at 05:00. The last flight of the day departs at 05:00. See the full list of flight times on Wego.
There are 2 airlines that offer direct flights from Porto to Milan. Find out the list of airlines on Wego.
All Airports in Porto
Porto Airport OPO