Fare Guide
Estimated lowest fares found within 7 days
The cheapest airline(s) flying from Milan to Porto is Air France.
Travel Period: February 2025 - January 2026
The cheapest month(s) to fly from Milan to Porto is March.
-
Feb 2025
-
Mar 2025
-
Apr 2025
-
May 2025
-
Jun 2025
-
Jul 2025
-
Aug 2025
-
Sep 2025
-
Oct 2025
-
Nov 2025
-
Dec 2025
-
Jan 2026
The cheapest day(s) of the week to fly from Milan to Porto is Wednesday.
-
Sun Sunday
-
Mon Monday
-
Tue Tuesday
-
Wed Wednesday
-
Thu Thursday
-
Fri Friday
-
Sat Saturday
Flight Schedules
Last Updated: Thu, 2 Jan, 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
-
08:15 BGY10:00 OPO2Hrs, 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 08:15 - OPO 10:00 2h 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 08:15
-
OPOPorto Airport 10:00
- 2h 45m
- Direct
-
Ryanair (FR 4042)Boeing 737 Max 8 Passenger -
Ryanair (FR 4042) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 Max 8 Passenger
-
10:05 MXP11:50 OPO2Hrs, 45m Direct
-
MXPMilan Malpensa Airport 10:05 - OPO 11:50 2h 45m Direct
-
MXPMilan Malpensa Airport 10:05
-
OPOPorto Airport 11:50
- 2h 45m
- Direct
-
Ryanair (FR 4018)Boeing 737 Max 8 Passenger -
Ryanair (FR 4018) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
10:50 BGY12:35 OPO2Hrs, 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 10:50 - OPO 12:35 2h 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 10:50
-
OPOPorto Airport 12:35
- 2h 45m
- Direct
-
Ryanair (FR 4042)Boeing 737 Max 8 Passenger -
Ryanair (FR 4042) -
- -
- -
- -
- -
- -
- S
- -
- Boeing 737 Max 8 Passenger
-
11:40 BGY13:25 OPO2Hrs, 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 11:40 - OPO 13:25 2h 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 11:40
-
OPOPorto Airport 13:25
- 2h 45m
- Direct
-
Ryanair (FR 4042)Boeing 737 800 -
Ryanair (FR 4042) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 800
-
12:25 BGY14:10 OPO2Hrs, 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 12:25 - OPO 14:10 2h 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 12:25
-
OPOPorto Airport 14:10
- 2h 45m
- Direct
-
Ryanair (FR 4042)Boeing 737 800 -
Ryanair (FR 4042) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
12:55 BGY14:40 OPO2Hrs, 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 12:55 - OPO 14:40 2h 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 12:55
-
OPOPorto Airport 14:40
- 2h 45m
- Direct
-
Ryanair (FR 4042)Boeing 737 Max 8 Passenger -
Ryanair (FR 4042) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
16:25 MXP18:05 OPO2Hrs, 40m Direct
-
MXPMilan Malpensa Airport 16:25 - OPO 18:05 2h 40m Direct
-
MXPMilan Malpensa Airport 16:25
-
OPOPorto Airport 18:05
- 2h 40m
- Direct
-
Ryanair (FR 4018)Boeing 737 Max 8 Passenger -
Ryanair (FR 4018) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 Max 8 Passenger
-
16:55 BGY18:40 OPO2Hrs, 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 16:55 - OPO 18:40 2h 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 16:55
-
OPOPorto Airport 18:40
- 2h 45m
- Direct
-
Ryanair (FR 4638)Boeing 737 800 -
Ryanair (FR 4638) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 800
-
17:10 BGY18:55 OPO2Hrs, 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 17:10 - OPO 18:55 2h 45m Direct
-
BGYMilan Bergamo/Orio al Serio Airport 17:10
-
OPOPorto Airport 18:55
- 2h 45m
- Direct
-
Ryanair (FR 4042)Boeing 737 800 -
Ryanair (FR 4042) -
- -
- -
- -
- T
- -
- -
- -
- Boeing 737 800
-
05:45 BGY10:10 OPO5Hrs, 25m 1 Stop (BCN)
-
BGYMilan Bergamo/Orio al Serio Airport 05:45 - OPO 10:10 5h 25m 1 Stop (BCN) Barcelona
-
BGYMilan Bergamo/Orio al Serio Airport 05:45BCNBarcelona Airport 09:10
-
BCNBarcelona Airport 07:20OPOPorto Airport 10:10
- 5h 25m (1h 50m)
- 1 Stop BCN · Barcelona 1h 50m
-
Ryanair (FR 847)Boeing 737 800 Ryanair (FR 4545)Boeing 737 Max 8 Passenger -
Ryanair (FR 847) -
- -
- -
- -
- -
- -
- -
- S
-
05:55 BGY11:00 OPO6Hrs, 05m 1 Stop (STN)
-
BGYMilan Bergamo/Orio al Serio Airport 05:55 - OPO 11:00 6h 05m 1 Stop (STN) London
-
BGYMilan Bergamo/Orio al Serio Airport 05:55STNLondon Stansted Airport 08:50
-
STNLondon Stansted Airport 07:00OPOPorto Airport 11:00
- 6h 05m (1h 50m)
- 1 Stop STN · London 1h 50m
-
Ryanair (FR 2697)Boeing 737 800 Ryanair (FR 1261)Boeing 737 800 -
Ryanair (FR 2697) -
- -
- -
- -
- -
- -
- S
- -
-
06:00 MXP10:40 OPO5Hrs, 40m 1 Stop (BVA)
-
MXPMilan Malpensa Airport 06:00 - OPO 10:40 5h 40m 1 Stop (BVA) Paris
-
MXPMilan Malpensa Airport 06:00BVAParis Beauvais-Tille Airport 09:25
-
BVAParis Beauvais-Tille Airport 07:45OPOPorto Airport 10:40
- 5h 40m (1h 40m)
- 1 Stop BVA · Paris 1h 40m
-
Ryanair (FR 8884)Boeing 737 Max 8 Passenger Ryanair (FR 595)Boeing 737 Max 8 Passenger -
Ryanair (FR 8884) -
- -
- -
- -
- -
- F
- -
- -
-
06:30 MXP11:10 OPO5Hrs, 40m 1 Stop (STN)
-
MXPMilan Malpensa Airport 06:30 - OPO 11:10 5h 40m 1 Stop (STN) London
-
MXPMilan Malpensa Airport 06:30STNLondon Stansted Airport 09:00
-
STNLondon Stansted Airport 07:35OPOPorto Airport 11:10
- 5h 40m (1h 25m)
- 1 Stop STN · London 1h 25m
-
Ryanair (FR 2756)Boeing 737 800 Ryanair (FR 1261)Boeing 737 Max 8 Passenger -
Ryanair (FR 2756) -
- -
- -
- -
- -
- F
- -
- -
-
07:00 MXP13:00 OPO7Hrs, 00m 1 Stop (VLC)
-
MXPMilan Malpensa Airport 07:00 - OPO 13:00 7h 1 Stop (VLC) Valencia
-
MXPMilan Malpensa Airport 07:00VLCValencia Airport 12:25
-
VLCValencia Airport 09:00OPOPorto Airport 13:00
- 7h (3h 25m)
- 1 Stop VLC · Valencia 3h 25m
-
Ryanair (FR 1444)Boeing 737 800 Ryanair (FR 1709)Boeing 737 800 -
Ryanair (FR 1444) -
- M
- -
- -
- -
- -
- -
- -
-
07:00 BGY13:15 OPO7Hrs, 15m 1 Stop (BER)
-
BGYMilan Bergamo/Orio al Serio Airport 07:00 - OPO 13:15 7h 15m 1 Stop (BER) Berlin
-
BGYMilan Bergamo/Orio al Serio Airport 07:00BERBerlin Brandenburg Airport 10:50
-
BERBerlin Brandenburg Airport 08:40OPOPorto Airport 13:15
- 7h 15m (2h 10m)
- 1 Stop BER · Berlin 2h 10m
-
Ryanair (FR 3312)Boeing 737 800 Ryanair (FR 2946)Boeing 737 Max 8 Passenger -
Ryanair (FR 3312) -
- -
- -
- -
- -
- -
- S
- -
-
07:30 BGY13:25 OPO6Hrs, 55m 1 Stop (STN)
-
BGYMilan Bergamo/Orio al Serio Airport 07:30 - OPO 13:25 6h 55m 1 Stop (STN) London
-
BGYMilan Bergamo/Orio al Serio Airport 07:30STNLondon Stansted Airport 11:00
-
STNLondon Stansted Airport 08:35OPOPorto Airport 13:25
- 6h 55m (2h 25m)
- 1 Stop STN · London 2h 25m
-
Ryanair (FR 2697)Boeing 737 800 Ryanair (FR 1275)Boeing 737 Max 8 Passenger -
Ryanair (FR 2697) -
- M
- -
- -
- -
- -
- -
- -
-
08:45 MXP14:55 OPO7Hrs, 10m 1 Stop (MAD)
-
MXPMilan Malpensa Airport 08:45 - OPO 14:55 7h 10m 1 Stop (MAD) Madrid
-
MXPMilan Malpensa Airport 08:45MADMadrid Barajas Airport 14:35
-
MADMadrid Barajas Airport 11:10OPOPorto Airport 14:55
- 7h 10m (3h 25m)
- 1 Stop MAD · Madrid 3h 25m
-
Ryanair (FR 2752)Boeing 737 800 Ryanair (FR 5482)Boeing 737 800 -
Ryanair (FR 2752) -
- -
- -
- -
- -
- -
- S
- -
-
10:20 BGY16:05 OPO6Hrs, 45m 1 Stop (STN)
-
BGYMilan Bergamo/Orio al Serio Airport 10:20 - OPO 16:05 6h 45m 1 Stop (STN) London
-
BGYMilan Bergamo/Orio al Serio Airport 10:20STNLondon Stansted Airport 13:40
-
STNLondon Stansted Airport 11:25OPOPorto Airport 16:05
- 6h 45m (2h 15m)
- 1 Stop STN · London 2h 15m
-
Ryanair (FR 2735)Boeing 737 800 Ryanair (FR 7700)Boeing 737 Max 8 Passenger -
Ryanair (FR 2735) -
- -
- -
- -
- -
- -
- -
- S
-
11:30 BGY16:05 OPO5Hrs, 35m 1 Stop (STN)
-
BGYMilan Bergamo/Orio al Serio Airport 11:30 - OPO 16:05 5h 35m 1 Stop (STN) London
-
BGYMilan Bergamo/Orio al Serio Airport 11:30STNLondon Stansted Airport 13:40
-
STNLondon Stansted Airport 12:35OPOPorto Airport 16:05
- 5h 35m (1h 05m)
- 1 Stop STN · London 1h 05m
-
Ryanair (FR 2739)Boeing 737 800 Ryanair (FR 7700)Boeing 737 Max 8 Passenger -
Ryanair (FR 2739) -
- -
- -
- -
- -
- -
- -
- S
-
11:55 MXP18:15 OPO7Hrs, 20m 1 Stop (LIS)
-
MXPMilan Malpensa Airport 11:55 - OPO 18:15 7h 20m 1 Stop (LIS) Lisbon
-
MXPMilan Malpensa Airport 11:55LISLisbon Airport 17:15
-
LISLisbon Airport 13:50OPOPorto Airport 18:15
- 7h 20m (3h 25m)
- 1 Stop LIS · Lisbon 3h 25m
-
TAP Air Portugal (TP 823)Airbus A321 Neo TAP Air Portugal (TP 1932)Airbus -
TAP Air Portugal (TP 823) -
- -
- T
- -
- -
- -
- -
- -
-
12:05 MXP16:55 OPO5Hrs, 50m 1 Stop (CMN)
-
MXPMilan Malpensa Airport 12:05 - OPO 16:55 5h 50m 1 Stop (CMN) Casablanca
-
MXPMilan Malpensa Airport 12:05CMNCasablanca Mohammed V Airport 16:10
-
CMNCasablanca Mohammed V Airport 15:10OPOPorto Airport 16:55
- 5h 50m (1h)
- 1 Stop CMN · Casablanca 1h
-
Royal Air Maroc (AT 955)Boeing 737 800 Royal Air Maroc (AT 996)Embraer Emb E90 -
Royal Air Maroc (AT 955) -
- -
- -
- -
- -
- -
- -
- S
-
12:40 BGY19:00 OPO7Hrs, 20m 1 Stop (BCN)
-
BGYMilan Bergamo/Orio al Serio Airport 12:40 - OPO 19:00 7h 20m 1 Stop (BCN) Barcelona
-
BGYMilan Bergamo/Orio al Serio Airport 12:40BCNBarcelona Airport 18:00
-
BCNBarcelona Airport 14:15OPOPorto Airport 19:00
- 7h 20m (3h 45m)
- 1 Stop BCN · Barcelona 3h 45m
-
Ryanair (FR 3319)Boeing 737 Max 8 Passenger Ryanair (FR 4587)Boeing 737 800 -
Ryanair (FR 3319) -
- -
- -
- -
- -
- -
- -
- S
-
14:45 MXP21:00 OPO7Hrs, 15m 1 Stop (STN)
-
MXPMilan Malpensa Airport 14:45 - OPO 21:00 7h 15m 1 Stop (STN) London
-
MXPMilan Malpensa Airport 14:45STNLondon Stansted Airport 18:35
-
STNLondon Stansted Airport 15:50OPOPorto Airport 21:00
- 7h 15m (2h 45m)
- 1 Stop STN · London 2h 45m
-
Ryanair (FR 8718)Boeing 737 800 Ryanair (FR 7706)Boeing 737 Max 8 Passenger -
Ryanair (FR 8718) -
- -
- -
- -
- -
- F
- -
- -
-
15:05 MXP21:20 OPO7Hrs, 15m 1 Stop (BCN)
-
MXPMilan Malpensa Airport 15:05 - OPO 21:20 7h 15m 1 Stop (BCN) Barcelona
-
MXPMilan Malpensa Airport 15:05BCNBarcelona Airport 20:25
-
BCNBarcelona Airport 16:40OPOPorto Airport 21:20
- 7h 15m (3h 45m)
- 1 Stop BCN · Barcelona 3h 45m
-
Vueling Airlines (VY 6339)Airbus Vueling Airlines (VY 8478)Airbus Industrie A320 Sharklets -
Vueling Airlines (VY 6339) -
- M
- -
- -
- -
- -
- -
- -
-
15:20 BGY20:20 OPO6Hrs, 00m 1 Stop (VIE)
-
BGYMilan Bergamo/Orio al Serio Airport 15:20 - OPO 20:20 6h 1 Stop (VIE) Vienna
-
BGYMilan Bergamo/Orio al Serio Airport 15:20VIEVienna Airport 17:50
-
VIEVienna Airport 16:45OPOPorto Airport 20:20
- 6h (1h 05m)
- 1 Stop VIE · Vienna 1h 05m
-
Ryanair (FR 7361)Boeing 737 800 Ryanair (FR 751)Boeing 737 Max 8 Passenger -
Ryanair (FR 7361) -
- -
- -
- -
- -
- -
- -
- S
-
15:55 MXP22:05 OPO7Hrs, 10m 1 Stop (AGP)
-
MXPMilan Malpensa Airport 15:55 - OPO 22:05 7h 10m 1 Stop (AGP) Malaga
-
MXPMilan Malpensa Airport 15:55AGPMalaga Airport 21:35
-
AGPMalaga Airport 18:35OPOPorto Airport 22:05
- 7h 10m (3h)
- 1 Stop AGP · Malaga 3h
-
Ryanair (FR 4948)Boeing 737 Max 8 Passenger Ryanair (FR 7635)Boeing 737 Max 8 Passenger -
Ryanair (FR 4948) -
- -
- -
- -
- -
- F
- -
- -
-
17:15 MXP21:20 OPO5Hrs, 05m 1 Stop (BCN)
-
MXPMilan Malpensa Airport 17:15 - OPO 21:20 5h 05m 1 Stop (BCN) Barcelona
-
MXPMilan Malpensa Airport 17:15BCNBarcelona Airport 20:25
-
BCNBarcelona Airport 18:55OPOPorto Airport 21:20
- 5h 05m (1h 30m)
- 1 Stop BCN · Barcelona 1h 30m
-
Vueling Airlines (VY 6333)Airbus Industrie A320 Sharklets Vueling Airlines (VY 8478)Airbus Industrie A320 Sharklets -
Vueling Airlines (VY 6333) -
- -
- -
- W
- -
- -
- -
- -
-
17:20 BGY21:35 OPO5Hrs, 15m 1 Stop (EIN)
-
BGYMilan Bergamo/Orio al Serio Airport 17:20 - OPO 21:35 5h 15m 1 Stop (EIN) Eindhoven
-
BGYMilan Bergamo/Orio al Serio Airport 17:20EINEindhoven Airport 19:55
-
EINEindhoven Airport 19:00OPOPorto Airport 21:35
- 5h 15m (55m)
- 1 Stop EIN · Eindhoven 55m
-
Ryanair (FR 3460)Boeing 737 800 Ryanair (FR 7473)Boeing 737 Max 8 Passenger -
Ryanair (FR 3460) -
- M
- -
- -
- -
- -
- -
- -
-
17:55 BGY21:55 OPO5Hrs, 00m 1 Stop (LUX)
-
BGYMilan Bergamo/Orio al Serio Airport 17:55 - OPO 21:55 5h 1 Stop (LUX) Luxembourg
-
BGYMilan Bergamo/Orio al Serio Airport 17:55LUXLuxembourg Airport 20:20
-
LUXLuxembourg Airport 19:15OPOPorto Airport 21:55
- 5h (1h 05m)
- 1 Stop LUX · Luxembourg 1h 05m
-
Ryanair (FR 3492)Boeing 737 Max 8 Passenger Ryanair (FR 4399)Boeing 737 Max 8 Passenger -
Ryanair (FR 3492) -
- -
- -
- -
- -
- F
- -
- -
The fastest flight time for direct flights from Milan to Porto is 2 hours 40 minutes. Check latest flight schedules & prices on Wego.
The most popular airline flying from Milan to Porto is Ryanair. Find the latest flight deals on Wego.
The flight distance between Milan and Porto is 1515km. Check all available flights on Wego.
The earliest flight of the day departs at 05:45. The last flight of the day departs at 05:45. See the full list of flight times on Wego.
There are 1 airlines that offer direct flights from Milan to Porto. Find out the list of airlines on Wego.
All Airports in Milan
All Airports in Porto
Porto Airport OPO