Fare Guide
Estimated lowest fares found within 7 days
The cheapest airline(s) flying from Porto to Milan is Ryanair.
Travel Period: October 2024 - September 2025
The cheapest month(s) to fly from Porto to Milan is November.
-
Oct 2024
-
Nov 2024
-
Dec 2024
-
Jan 2025
-
Feb 2025
-
Mar 2025
-
Apr 2025
-
May 2025
-
Jun 2025
-
Jul 2025
-
Aug 2025
-
Sep 2025
The cheapest day(s) of the week to fly from Porto to Milan is Wednesday.
-
Sun Sunday
-
Mon Monday
-
Tue Tuesday
-
Wed Wednesday
-
Thu Thursday
-
Fri Friday
-
Sat Saturday
Flight Schedules
Last Updated: Mon, 2 Sep, 2024
-
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:00 MXP2Hrs, 25m Direct
-
OPOPorto Airport 06:35 - MXP 10:00 2h 25m Direct
-
OPOPorto Airport 06:35
-
MXPMilan Malpensa Airport 10:00
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 800
-
07:05 OPO10:35 BGY2Hrs, 30m Direct
-
OPOPorto Airport 07:05 - BGY 10:35 2h 30m Direct
-
OPOPorto Airport 07:05
-
BGYMilan Bergamo/Orio al Serio Airport 10:35
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 Max 8 Passenger -
Ryanair (FR 4041) -
- -
- -
- -
- T
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
07:15 OPO10:45 BGY2Hrs, 30m Direct
-
OPOPorto Airport 07:15 - BGY 10:45 2h 30m Direct
-
OPOPorto Airport 07:15
-
BGYMilan Bergamo/Orio al Serio Airport 10:45
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- -
- W
- -
- -
- -
- -
- Boeing 737 800
-
08:30 OPO11:55 MXP2Hrs, 25m Direct
-
OPOPorto Airport 08:30 - MXP 11:55 2h 25m Direct
-
OPOPorto Airport 08:30
-
MXPMilan Malpensa Airport 11:55
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
09:10 OPO12:35 MXP2Hrs, 25m Direct
-
OPOPorto Airport 09:10 - MXP 12:35 2h 25m Direct
-
OPOPorto Airport 09:10
-
MXPMilan Malpensa Airport 12:35
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- -
- -
- -
- S
- -
- Boeing 737 800
-
09:35 OPO13:00 MXP2Hrs, 25m Direct
-
OPOPorto Airport 09:35 - MXP 13:00 2h 25m Direct
-
OPOPorto Airport 09:35
-
MXPMilan Malpensa Airport 13:00
- 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
-
11:45 OPO15:10 MXP2Hrs, 25m Direct
-
OPOPorto Airport 11:45 - MXP 15:10 2h 25m Direct
-
OPOPorto Airport 11:45
-
MXPMilan Malpensa Airport 15:10
- 2h 25m
- Direct
-
EasyJet (U2 7789)Airbus -
EasyJet (U2 7789) -
- -
- -
- -
- -
- -
- S
- -
- Airbus
-
13:05 OPO16:35 BGY2Hrs, 30m Direct
-
OPOPorto Airport 13:05 - BGY 16:35 2h 30m Direct
-
OPOPorto Airport 13:05
-
BGYMilan Bergamo/Orio al Serio Airport 16:35
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 Max 8 Passenger -
Ryanair (FR 4041) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 Max 8 Passenger
-
13:45 OPO17:15 BGY2Hrs, 30m Direct
-
OPOPorto Airport 13:45 - BGY 17:15 2h 30m Direct
-
OPOPorto Airport 13:45
-
BGYMilan Bergamo/Orio al Serio Airport 17:15
- 2h 30m
- Direct
-
Ryanair (FR 4637)Boeing 737 800 -
Ryanair (FR 4637) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
15:45 OPO19:15 BGY2Hrs, 30m Direct
-
OPOPorto Airport 15:45 - BGY 19:15 2h 30m Direct
-
OPOPorto Airport 15:45
-
BGYMilan Bergamo/Orio al Serio Airport 19:15
- 2h 30m
- Direct
-
Ryanair (FR 4637)Boeing 737 800 -
Ryanair (FR 4637) -
- -
- -
- W
- -
- -
- -
- -
- Boeing 737 800
-
15:45 OPO19:10 MXP2Hrs, 25m Direct
-
OPOPorto Airport 15:45 - MXP 19:10 2h 25m Direct
-
OPOPorto Airport 15:45
-
MXPMilan Malpensa Airport 19:10
- 2h 25m
- Direct
-
EasyJet (U2 3882)Airbus -
EasyJet (U2 3882) -
- -
- -
- -
- -
- F
- -
- -
- Airbus
-
15:50 OPO19:20 BGY2Hrs, 30m Direct
-
OPOPorto Airport 15:50 - BGY 19:20 2h 30m Direct
-
OPOPorto Airport 15:50
-
BGYMilan Bergamo/Orio al Serio Airport 19:20
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
17:00 OPO20:25 MXP2Hrs, 25m Direct
-
OPOPorto Airport 17:00 - MXP 20:25 2h 25m Direct
-
OPOPorto Airport 17:00
-
MXPMilan Malpensa Airport 20:25
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- -
- T
- -
- -
- -
- 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 Max 8 Passenger -
Ryanair (FR 4041) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
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
-
EasyJet (U2 7781)Airbus -
EasyJet (U2 7781) -
- -
- -
- W
- -
- -
- -
- -
- Airbus
-
17:20 OPO20:50 BGY2Hrs, 30m Direct
-
OPOPorto Airport 17:20 - BGY 20:50 2h 30m Direct
-
OPOPorto Airport 17:20
-
BGYMilan Bergamo/Orio al Serio Airport 20:50
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 800
-
17:30 OPO21:00 BGY2Hrs, 30m Direct
-
OPOPorto Airport 17:30 - BGY 21:00 2h 30m Direct
-
OPOPorto Airport 17:30
-
BGYMilan Bergamo/Orio al Serio Airport 21:00
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- -
- -
- -
- -
- S
- -
- Boeing 737 800
-
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
-
17:40 OPO21:10 MXP2Hrs, 30m Direct
-
OPOPorto Airport 17:40 - MXP 21:10 2h 30m Direct
-
OPOPorto Airport 17:40
-
MXPMilan Malpensa Airport 21:10
- 2h 30m
- Direct
-
EasyJet (U2 7781)Airbus -
EasyJet (U2 7781) -
- -
- -
- -
- T
- -
- -
- -
- Airbus
-
18:00 OPO21:20 MXP2Hrs, 20m Direct
-
OPOPorto Airport 18:00 - MXP 21:20 2h 20m Direct
-
OPOPorto Airport 18:00
-
MXPMilan Malpensa Airport 21:20
- 2h 20m
- Direct
-
EasyJet (U2 7789)Airbus -
EasyJet (U2 7789) -
- -
- -
- -
- -
- F
- -
- -
- Airbus
-
18:40 OPO22:05 MXP2Hrs, 25m Direct
-
OPOPorto Airport 18:40 - MXP 22:05 2h 25m Direct
-
OPOPorto Airport 18:40
-
MXPMilan Malpensa Airport 22:05
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 800
-
19:40 OPO23:05 MXP2Hrs, 25m Direct
-
OPOPorto Airport 19:40 - MXP 23:05 2h 25m Direct
-
OPOPorto Airport 19:40
-
MXPMilan Malpensa Airport 23:05
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 800 -
Ryanair (FR 4017) -
- -
- -
- W
- -
- -
- -
- -
- Boeing 737 800
-
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 MXP6Hrs, 00m 1 Stop (AMS)
-
OPOPorto Airport 05:00 - MXP 12:00 6h 1 Stop (AMS) Amsterdam
-
OPOPorto Airport 05:00AMSAmsterdam Airport 10:20
-
AMSAmsterdam Airport 08:30MXPMilan Malpensa Airport 12:00
- 6h (1h 50m)
- 1 Stop AMS · Amsterdam 1h 50m
-
KLM (KL 1570)Boeing 737 800 KLM (KL 1621)Boeing 737 800 -
KLM (KL 1570) -
- -
- -
- -
- -
- -
- -
- S
-
05:05 OPO10:55 MXP4Hrs, 50m 1 Stop (LIS)
-
OPOPorto Airport 05:05 - MXP 10:55 4h 50m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 05:05LISLisbon Airport 07:15
-
LISLisbon Airport 06:05MXPMilan Malpensa Airport 10:55
- 4h 50m (1h 10m)
- 1 Stop LIS · Lisbon 1h 10m
-
TAP Air Portugal (TP 1937)Embraer 195 TAP Air Portugal (TP 822)Airbus -
TAP Air Portugal (TP 1937) -
- -
- -
- -
- -
- -
- -
- S
-
06:00 OPO13:45 MXP6Hrs, 45m 1 Stop (FRA)
-
OPOPorto Airport 06:00 - MXP 13:45 6h 45m 1 Stop (FRA) Frankfurt
-
OPOPorto Airport 06:00FRAFrankfurt International Airport 12:30
-
FRAFrankfurt International Airport 09:40MXPMilan Malpensa Airport 13:45
- 6h 45m (2h 50m)
- 1 Stop FRA · Frankfurt 2h 50m
-
Lufthansa (LH 1181)Airbus A321 Neo Air Dolomiti (EN 8810)Embraer Emb E90 -
Lufthansa (LH 1181) -
- -
- T
- -
- -
- -
- -
- -
-
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:40
-
FRAFrankfurt International Airport 09:40MXPMilan Malpensa Airport 13:55
- 6h 55m (3h)
- 1 Stop FRA · Frankfurt 3h
-
Lufthansa (LH 1181)Airbus Air Dolomiti (EN 8810)Embraer Emb E90 -
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:50
-
FRAFrankfurt International Airport 09:40LINMilan Linate Airport 12:00
- 5h (1h 10m)
- 1 Stop FRA · Frankfurt 1h 10m
-
Lufthansa (LH 1181)Airbus Lufthansa (LH 272)Airbus -
Lufthansa (LH 1181) -
- -
- -
- -
- -
- -
- -
- 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:40
-
FRAFrankfurt International Airport 09:40MXPMilan Malpensa Airport 13:55
- 6h 55m (3h)
- 1 Stop FRA · Frankfurt 3h
-
Lufthansa (LH 1181)Airbus A321 Neo Air Dolomiti (EN 8810)Embraer 195 -
Lufthansa (LH 1181) -
- M
- -
- W
- -
- F
- -
- -
-
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:40
-
FRAFrankfurt International Airport 09:40MXPMilan Malpensa Airport 13:55
- 6h 55m (3h)
- 1 Stop FRA · Frankfurt 3h
-
Lufthansa (LH 1181)Airbus A321 Neo Air Dolomiti (EN 8810)Embraer Emb E90 -
Lufthansa (LH 1181) -
- -
- -
- -
- T
- -
- 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:50
-
FRAFrankfurt International Airport 09:40LINMilan Linate Airport 12:00
- 5h (1h 10m)
- 1 Stop FRA · Frankfurt 1h 10m
-
Lufthansa (LH 1181)Airbus A321 Neo Lufthansa (LH 272)Embraer Emb E90 -
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:50
-
FRAFrankfurt International Airport 09:40LINMilan Linate Airport 12:00
- 5h (1h 10m)
- 1 Stop FRA · Frankfurt 1h 10m
-
Lufthansa (LH 1181)Airbus A321 Neo Lufthansa (LH 272)Airbus A320 Neo -
Lufthansa (LH 1181) -
- -
- -
- -
- -
- F
- -
- -
-
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:50
-
FRAFrankfurt International Airport 09:40LINMilan Linate Airport 12:00
- 5h (1h 10m)
- 1 Stop FRA · Frankfurt 1h 10m
-
Lufthansa (LH 1181)Airbus A321 Neo Lufthansa (LH 272)Airbus -
Lufthansa (LH 1181) -
- M
- T
- W
- T
- -
- -
- -
-
06:10 OPO13:40 MXP6Hrs, 30m 1 Stop (BRI)
-
OPOPorto Airport 06:10 - MXP 13:40 6h 30m 1 Stop (BRI) Bari
-
OPOPorto Airport 06:10BRIBari Airport 12:00
-
BRIBari Airport 10:10MXPMilan Malpensa Airport 13:40
- 6h 30m (1h 50m)
- 1 Stop BRI · Bari 1h 50m
-
Ryanair (FR 7612)Boeing 737 800 Ryanair (FR 2771)Boeing 737 800 -
Ryanair (FR 7612) -
- -
- -
- -
- -
- -
- -
- S
-
06:10 OPO12:10 MXP5Hrs, 00m 1 Stop (STN)
-
OPOPorto Airport 06:10 - MXP 12:10 5h 1 Stop (STN) London
-
OPOPorto Airport 06:10STNLondon Stansted Airport 09:10
-
STNLondon Stansted Airport 08:20MXPMilan Malpensa Airport 12:10
- 5h (50m)
- 1 Stop STN · London 50m
-
Ryanair (FR 1262)Boeing 737 Max 8 Passenger Ryanair (FR 2759)Boeing 737 800 -
Ryanair (FR 1262) -
- -
- T
- -
- -
- -
- -
- -
-
06:20 OPO14:10 BGY6Hrs, 50m 1 Stop (WRO)
-
OPOPorto Airport 06:20 - BGY 14:10 6h 50m 1 Stop (WRO) Wroclaw
-
OPOPorto Airport 06:20WROWroclaw Airport 12:30
-
WROWroclaw Airport 10:40BGYMilan Bergamo/Orio al Serio Airport 14:10
- 6h 50m (1h 50m)
- 1 Stop WRO · Wroclaw 1h 50m
-
Ryanair (FR 4422)Boeing 737 Max 8 Passenger Ryanair (FR 8845)Boeing 737 Max 8 Passenger -
Ryanair (FR 4422) -
- M
- -
- -
- -
- -
- -
- -
-
06:25 OPO14:15 MXP6Hrs, 50m 1 Stop (VIE)
-
OPOPorto Airport 06:25 - MXP 14:15 6h 50m 1 Stop (VIE) Vienna
-
OPOPorto Airport 06:25VIEVienna Airport 12:45
-
VIEVienna Airport 10:35MXPMilan Malpensa Airport 14:15
- 6h 50m (2h 10m)
- 1 Stop VIE · Vienna 2h 10m
-
Ryanair (FR 752)Boeing 737 Max 8 Passenger Ryanair (FR 6914)Airbus -
Ryanair (FR 752) -
- -
- -
- -
- -
- -
- S
- -
-
06:35 OPO13:35 BGY6Hrs, 00m 1 Stop (NRN)
-
OPOPorto Airport 06:35 - BGY 13:35 6h 1 Stop (NRN) Dusseldorf
-
OPOPorto Airport 06:35NRNDuesseldorf Weeze Airport 11:55
-
NRNDuesseldorf Weeze Airport 10:10BGYMilan Bergamo/Orio al Serio Airport 13:35
- 6h (1h 45m)
- 1 Stop NRN · Dusseldorf 1h 45m
-
Ryanair (FR 5488)Boeing 737 Max 8 Passenger Ryanair (FR 485)Boeing 737 800 -
Ryanair (FR 5488) -
- -
- -
- W
- -
- -
- -
- -
-
06:50 OPO13:35 BGY5Hrs, 45m 1 Stop (BCN)
-
OPOPorto Airport 06:50 - BGY 13:35 5h 45m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 06:50BCNBarcelona Airport 11:50
-
BCNBarcelona Airport 09:30BGYMilan Bergamo/Orio al Serio Airport 13:35
- 5h 45m (2h 20m)
- 1 Stop BCN · Barcelona 2h 20m
-
Ryanair (FR 4586)Boeing 737 800 Ryanair (FR 3143)Boeing 737 Max 8 Passenger -
Ryanair (FR 4586) -
- M
- -
- -
- -
- -
- -
- -
-
07:05 OPO14:30 MXP6Hrs, 25m 1 Stop (BVA)
-
OPOPorto Airport 07:05 - MXP 14:30 6h 25m 1 Stop (BVA) Paris
-
OPOPorto Airport 07:05BVAParis Beauvais-Tille Airport 13:00
-
BVAParis Beauvais-Tille Airport 10:15MXPMilan Malpensa Airport 14:30
- 6h 25m (2h 45m)
- 1 Stop BVA · Paris 2h 45m
-
Ryanair (FR 594)Boeing 737 Max 8 Passenger Ryanair (FR 8883)Boeing 737 800 -
Ryanair (FR 594) -
- -
- -
- -
- -
- -
- S
- -
-
07:05 OPO14:45 MXP6Hrs, 40m 1 Stop (MAD)
-
OPOPorto Airport 07:05 - MXP 14:45 6h 40m 1 Stop (MAD) Madrid
-
OPOPorto Airport 07:05MADMadrid Barajas Airport 12:35
-
MADMadrid Barajas Airport 09:20MXPMilan Malpensa Airport 14:45
- 6h 40m (3h 15m)
- 1 Stop MAD · Madrid 3h 15m
-
Ryanair (FR 573)Boeing 737 800 Ryanair (FR 2753)Boeing 737 800 -
Ryanair (FR 573) -
- -
- -
- W
- -
- -
- -
- -
-
07:10 OPO14:25 BGY6Hrs, 15m 1 Stop (STN)
-
OPOPorto Airport 07:10 - BGY 14:25 6h 15m 1 Stop (STN) London
-
OPOPorto Airport 07:10STNLondon Stansted Airport 11:30
-
STNLondon Stansted Airport 09:25BGYMilan Bergamo/Orio al Serio Airport 14:25
- 6h 15m (2h 05m)
- 1 Stop STN · London 2h 05m
-
Ryanair (FR 1262)Boeing 737 800 Ryanair (FR 2738)Boeing 737 800 -
Ryanair (FR 1262) -
- -
- -
- -
- -
- -
- -
- S
-
07:15 OPO13:25 BGY5Hrs, 10m 1 Stop (BVA)
-
OPOPorto Airport 07:15 - BGY 13:25 5h 10m 1 Stop (BVA) Paris
-
OPOPorto Airport 07:15BVAParis Beauvais-Tille Airport 11:55
-
BVAParis Beauvais-Tille Airport 10:25BGYMilan Bergamo/Orio al Serio Airport 13:25
- 5h 10m (1h 30m)
- 1 Stop BVA · Paris 1h 30m
-
Ryanair (FR 594)Boeing 737 800 Ryanair (FR 3433)Boeing 737 800 -
Ryanair (FR 594) -
- -
- T
- -
- -
- -
- -
- -
-
07:25 OPO14:45 BGY6Hrs, 20m 1 Stop (BVA)
-
OPOPorto Airport 07:25 - BGY 14:45 6h 20m 1 Stop (BVA) Paris
-
OPOPorto Airport 07:25BVAParis Beauvais-Tille Airport 13:15
-
BVAParis Beauvais-Tille Airport 10:35BGYMilan Bergamo/Orio al Serio Airport 14:45
- 6h 20m (2h 40m)
- 1 Stop BVA · Paris 2h 40m
-
Ryanair (FR 594)Boeing 737 800 Ryanair (FR 4232)Boeing 737 800 -
Ryanair (FR 594) -
- -
- -
- -
- -
- F
- -
- -
-
07:25 OPO14:50 MXP6Hrs, 25m 1 Stop (BCN)
-
OPOPorto Airport 07:25 - MXP 14:50 6h 25m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:25BCNBarcelona Airport 13:05
-
BCNBarcelona Airport 10:10MXPMilan Malpensa Airport 14:50
- 6h 25m (2h 55m)
- 1 Stop BCN · Barcelona 2h 55m
-
Ryanair (FR 4546)Boeing 737 800 Ryanair (FR 269)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- -
- W
- -
- -
- -
- -
-
07:35 OPO15:35 MXP7Hrs, 00m 1 Stop (MAD)
-
OPOPorto Airport 07:35 - MXP 15:35 7h 1 Stop (MAD) Madrid
-
OPOPorto Airport 07:35MADMadrid Barajas Airport 13:30
-
MADMadrid Barajas Airport 09:45MXPMilan Malpensa Airport 15:35
- 7h (3h 45m)
- 1 Stop MAD · Madrid 3h 45m
-
Air Europa (UX 1144)Boeing 737 800 Air Europa (UX 1063)Boeing 737 800 -
Air Europa (UX 1144) -
- -
- T
- -
- T
- -
- S
- -
-
07:35 OPO13:50 MXP5Hrs, 15m 1 Stop (BCN)
-
OPOPorto Airport 07:35 - MXP 13:50 5h 15m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:35BCNBarcelona Airport 12:05
-
BCNBarcelona Airport 10:20MXPMilan Malpensa Airport 13:50
- 5h 15m (1h 45m)
- 1 Stop BCN · Barcelona 1h 45m
-
Ryanair (FR 4546)Boeing 737 Max 8 Passenger Ryanair (FR 269)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- T
- -
- -
- -
- -
- -
-
07:40 OPO14:45 BGY6Hrs, 05m 1 Stop (BCN)
-
OPOPorto Airport 07:40 - BGY 14:45 6h 05m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:40BCNBarcelona Airport 13:00
-
BCNBarcelona Airport 10:25BGYMilan Bergamo/Orio al Serio Airport 14:45
- 6h 05m (2h 35m)
- 1 Stop BCN · Barcelona 2h 35m
-
Ryanair (FR 4546)Boeing 737 Max 8 Passenger Ryanair (FR 846)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- -
- -
- -
- -
- -
- S
-
07:45 OPO14:50 BGY6Hrs, 05m 1 Stop (CAG)
-
OPOPorto Airport 07:45 - BGY 14:50 6h 05m 1 Stop (CAG) Cagliari
-
OPOPorto Airport 07:45CAGCagliari Airport 13:20
-
CAGCagliari Airport 11:15BGYMilan Bergamo/Orio al Serio Airport 14:50
- 6h 05m (2h 05m)
- 1 Stop CAG · Cagliari 2h 05m
-
Ryanair (FR 5265)Boeing 737 Max 8 Passenger Ryanair (FR 3201)Boeing 737 800 -
Ryanair (FR 5265) -
- -
- -
- -
- -
- F
- -
- -
-
07:55 OPO15:05 BGY6Hrs, 10m 1 Stop (BCN)
-
OPOPorto Airport 07:55 - BGY 15:05 6h 10m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 07:55BCNBarcelona Airport 13:20
-
BCNBarcelona Airport 10:40BGYMilan Bergamo/Orio al Serio Airport 15:05
- 6h 10m (2h 40m)
- 1 Stop BCN · Barcelona 2h 40m
-
Ryanair (FR 4546)Boeing 737 800 Ryanair (FR 3143)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- -
- -
- -
- F
- -
- -
-
07:55 OPO14:15 BGY5Hrs, 20m 1 Stop (HHN)
-
OPOPorto Airport 07:55 - BGY 14:15 5h 20m 1 Stop (HHN) Frankfurt
-
OPOPorto Airport 07:55HHNFrankfurt Hahn Airport 13:00
-
HHNFrankfurt Hahn Airport 11:25BGYMilan Bergamo/Orio al Serio Airport 14:15
- 5h 20m (1h 35m)
- 1 Stop HHN · Frankfurt 1h 35m
-
Ryanair (FR 4393)Boeing 737 800 Ryanair (FR 1688)Boeing 737 Max 8 Passenger -
Ryanair (FR 4393) -
- -
- T
- -
- -
- -
- -
- -
-
08:10 OPO14:15 MXP5Hrs, 05m 1 Stop (BCN)
-
OPOPorto Airport 08:10 - MXP 14:15 5h 05m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:10BCNBarcelona Airport 12:30
-
BCNBarcelona Airport 10:55MXPMilan Malpensa Airport 14:15
- 5h 05m (1h 35m)
- 1 Stop BCN · Barcelona 1h 35m
-
Vueling Airlines (VY 8477)Airbus Industrie A320 Sharklets Vueling Airlines (VY 6340)Airbus -
Vueling Airlines (VY 8477) -
- -
- -
- -
- -
- -
- S
- -
-
08:20 OPO15:35 MXP6Hrs, 15m 1 Stop (LUX)
-
OPOPorto Airport 08:20 - MXP 15:35 6h 15m 1 Stop (LUX) Luxembourg
-
OPOPorto Airport 08:20LUXLuxembourg Airport 14:20
-
LUXLuxembourg Airport 11:40MXPMilan Malpensa Airport 15:35
- 6h 15m (2h 40m)
- 1 Stop LUX · Luxembourg 2h 40m
-
Luxair (LG 3770)Boeing 737 700 Luxair (LG 6995)Dehavilland Dash 8 400 -
Luxair (LG 3770) -
- -
- -
- -
- T
- F
- -
- -
-
08:20 OPO15:50 MXP6Hrs, 30m 1 Stop (LUX)
-
OPOPorto Airport 08:20 - MXP 15:50 6h 30m 1 Stop (LUX) Luxembourg
-
OPOPorto Airport 08:20LUXLuxembourg Airport 14:35
-
LUXLuxembourg Airport 11:40MXPMilan Malpensa Airport 15:50
- 6h 30m (2h 55m)
- 1 Stop LUX · Luxembourg 2h 55m
-
Luxair (LG 3770)Boeing 737 700 Luxair (LG 6995)Dehavilland Dash 8 400 -
Luxair (LG 3770) -
- -
- -
- W
- -
- -
- -
- -
-
08:35 OPO14:40 BGY5Hrs, 05m 1 Stop (FKB)
-
OPOPorto Airport 08:35 - BGY 14:40 5h 05m 1 Stop (FKB) Karlsruhe/Baden Baden
-
OPOPorto Airport 08:35FKBKarlsruhe/Baden-Baden Baden Airpark Airport 13:35
-
FKBKarlsruhe/Baden-Baden Baden Airpark Airport 12:05BGYMilan Bergamo/Orio al Serio Airport 14:40
- 5h 05m (1h 30m)
- 1 Stop FKB · Karlsruhe/Baden Baden 1h 30m
-
Ryanair (FR 5478)Boeing 737 800 Ryanair (FR 3455)Boeing 737 Max 8 Passenger -
Ryanair (FR 5478) -
- -
- -
- -
- T
- -
- -
- -
-
08:35 OPO15:15 MXP5Hrs, 40m 1 Stop (BCN)
-
OPOPorto Airport 08:35 - MXP 15:15 5h 40m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:35BCNBarcelona Airport 13:30
-
BCNBarcelona Airport 11:20MXPMilan Malpensa Airport 15:15
- 5h 40m (2h 10m)
- 1 Stop BCN · Barcelona 2h 10m
-
Vueling Airlines (VY 8477)Airbus Industrie A320 Sharklets Vueling Airlines (VY 6342)Airbus -
Vueling Airlines (VY 8477) -
- -
- -
- -
- T
- -
- -
- -
-
08:35 OPO15:50 MXP6Hrs, 15m 1 Stop (BCN)
-
OPOPorto Airport 08:35 - MXP 15:50 6h 15m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:35BCNBarcelona Airport 14:05
-
BCNBarcelona Airport 11:20MXPMilan Malpensa Airport 15:50
- 6h 15m (2h 45m)
- 1 Stop BCN · Barcelona 2h 45m
-
Vueling Airlines (VY 8477)Airbus Vueling Airlines (VY 6332)Airbus Industrie A320 Sharklets -
Vueling Airlines (VY 8477) -
- M
- -
- -
- -
- -
- -
- -
-
08:35 OPO15:55 MXP6Hrs, 20m 1 Stop (BCN)
-
OPOPorto Airport 08:35 - MXP 15:55 6h 20m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:35BCNBarcelona Airport 14:10
-
BCNBarcelona Airport 11:20MXPMilan Malpensa Airport 15:55
- 6h 20m (2h 50m)
- 1 Stop BCN · Barcelona 2h 50m
-
Vueling Airlines (VY 8477)Airbus Industrie A320 Sharklets Vueling Airlines (VY 6332)Airbus Industrie A320 Sharklets -
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 Emb E90 Swiss (LX 1628)Embraer 195 E2 -
Swiss (LX 2061) -
- -
- T
- -
- -
- -
- -
- -
-
08:40 OPO13:55 MXP4Hrs, 15m 1 Stop (ZRH)
-
OPOPorto Airport 08:40 - MXP 13:55 4h 15m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 08:40ZRHZurich Airport 13:00
-
ZRHZurich Airport 12:10MXPMilan Malpensa Airport 13:55
- 4h 15m (50m)
- 1 Stop ZRH · Zurich 50m
-
Swiss (LX 2061)Airbus A220 300 Swiss (LX 1628)Embraer Emb E90 -
Swiss (LX 2061) -
- -
- -
- -
- -
- -
- -
- 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 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 Emb E90 -
Swiss (LX 2061) -
- -
- -
- -
- T
- -
- S
- -
-
08:50 OPO16:20 MXP6Hrs, 30m 1 Stop (LIS)
-
OPOPorto Airport 08:50 - MXP 16:20 6h 30m 1 Stop (LIS) Lisbon
-
OPOPorto Airport 08:50LISLisbon Airport 12:40
-
LISLisbon Airport 09:50MXPMilan Malpensa Airport 16:20
- 6h 30m (2h 50m)
- 1 Stop LIS · Lisbon 2h 50m
-
TAP Air Portugal (TP 1921)Airbus TAP Air Portugal (TP 824)Airbus -
TAP Air Portugal (TP 1921) -
- -
- -
- -
- -
- F
- -
- -
-
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:45
-
LISLisbon Airport 09:55MXPMilan Malpensa Airport 16:25
- 6h 30m (2h 50m)
- 1 Stop LIS · Lisbon 2h 50m
-
TAP Air Portugal (TP 1921)Embraer Emb E90 TAP Air Portugal (TP 824)Airbus A320 Neo -
TAP Air Portugal (TP 1921) -
- -
- T
- -
- -
- -
- -
- -
-
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:45
-
LISLisbon Airport 09:55MXPMilan Malpensa Airport 16:25
- 6h 30m (2h 50m)
- 1 Stop LIS · Lisbon 2h 50m
-
TAP Air Portugal (TP 1921)Embraer 195 TAP Air Portugal (TP 824)Airbus -
TAP Air Portugal (TP 1921) -
- -
- -
- -
- T
- -
- -
- -
-
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:45
-
LISLisbon Airport 10:00MXPMilan Malpensa Airport 16:25
- 6h 30m (2h 45m)
- 1 Stop LIS · Lisbon 2h 45m
-
TAP Air Portugal (TP 1921)Airbus TAP Air Portugal (TP 824)Airbus A320 Neo -
TAP Air Portugal (TP 1921) -
- M
- -
- -
- -
- -
- -
- -
-
08:55 OPO15:55 MXP6Hrs, 00m 1 Stop (DUS)
-
OPOPorto Airport 08:55 - MXP 15:55 6h 1 Stop (DUS) Dusseldorf
-
OPOPorto Airport 08:55DUSDuesseldorf International Airport 14:25
-
DUSDuesseldorf International Airport 12:30MXPMilan Malpensa Airport 15:55
- 6h (1h 55m)
- 1 Stop DUS · Dusseldorf 1h 55m
-
Eurowings (EW 9641)Airbus A220 300 Eurowings (EW 9824)Airbus A220 300 -
Eurowings (EW 9641) -
- -
- -
- -
- -
- F
- -
- -
-
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:45
-
LISLisbon Airport 09:55MXPMilan Malpensa Airport 16:25
- 6h 30m (2h 50m)
- 1 Stop LIS · Lisbon 2h 50m
-
TAP Air Portugal (TP 1921)Embraer Emb E90 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:45
-
LISLisbon Airport 10:00MXPMilan 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 A320 Neo -
TAP Air Portugal (TP 1921) -
- -
- -
- W
- -
- -
- -
- -
-
09:10 OPO17:00 BGY6Hrs, 50m 1 Stop (FAO)
-
OPOPorto Airport 09:10 - BGY 17:00 6h 50m 1 Stop (FAO) Faro
-
OPOPorto Airport 09:10FAOFaro Airport 13:10
-
FAOFaro Airport 10:10BGYMilan Bergamo/Orio al Serio Airport 17:00
- 6h 50m (3h)
- 1 Stop FAO · Faro 3h
-
Ryanair (FR 5452)Boeing 737 Max 8 Passenger Ryanair (FR 5140)Boeing 737 800 -
Ryanair (FR 5452) -
- -
- T
- -
- -
- -
- -
- -
-
09:15 OPO16:50 MXP6Hrs, 35m 1 Stop (CDG)
-
OPOPorto Airport 09:15 - MXP 16:50 6h 35m 1 Stop (CDG) Paris
-
OPOPorto Airport 09:15CDGParis Charles de Gaulle Airport 15:20
-
CDGParis Charles de Gaulle Airport 12:30MXPMilan Malpensa Airport 16:50
- 6h 35m (2h 50m)
- 1 Stop CDG · Paris 2h 50m
-
Air France (AF 4155)Airbus Air France (AF 1230)Airbus -
Air France (AF 4155) -
- M
- -
- -
- -
- -
- -
- -
-
09:15 OPO16:50 MXP6Hrs, 35m 1 Stop (CDG)
-
OPOPorto Airport 09:15 - MXP 16:50 6h 35m 1 Stop (CDG) Paris
-
OPOPorto Airport 09:15CDGParis Charles de Gaulle Airport 15:20
-
CDGParis Charles de Gaulle Airport 12:30MXPMilan Malpensa Airport 16:50
- 6h 35m (2h 50m)
- 1 Stop CDG · Paris 2h 50m
-
Air France (AF 1429)Airbus Air France (AF 1230)Airbus -
Air France (AF 1429) -
- -
- -
- W
- -
- -
- -
- -
-
09:15 OPO16:50 MXP6Hrs, 35m 1 Stop (CDG)
-
OPOPorto Airport 09:15 - MXP 16:50 6h 35m 1 Stop (CDG) Paris
-
OPOPorto Airport 09:15CDGParis Charles de Gaulle Airport 15:20
-
CDGParis Charles de Gaulle Airport 12:30MXPMilan Malpensa Airport 16:50
- 6h 35m (2h 50m)
- 1 Stop CDG · Paris 2h 50m
-
Air France (AF 1429)Airbus Air France (AF 1230)Airbus -
Air France (AF 1429) -
- -
- -
- -
- -
- F
- -
- -
-
09:40 OPO17:20 BGY6Hrs, 40m 1 Stop (BCN)
-
OPOPorto Airport 09:40 - BGY 17:20 6h 40m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 09:40BCNBarcelona Airport 15:35
-
BCNBarcelona Airport 12:25BGYMilan Bergamo/Orio al Serio Airport 17:20
- 6h 40m (3h 10m)
- 1 Stop BCN · Barcelona 3h 10m
-
Ryanair (FR 4546)Boeing 737 800 Ryanair (FR 6353)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- -
- -
- T
- -
- -
- -
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