Fare Guide
Estimated lowest fares found within 7 days
The cheapest airline(s) flying from Porto to Milan is KLM.
Travel Period: March 2025 - February 2026
The cheapest month(s) to fly from Porto to Milan is April.
-
Mar 2025
-
Apr 2025
-
May 2025
-
Jun 2025
-
Jul 2025
-
Aug 2025
-
Sep 2025
-
Oct 2025
-
Nov 2025
-
Dec 2025
-
Jan 2026
-
Feb 2026
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: Sun, 2 Feb, 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:15 OPO09:40 MXP2Hrs, 25m Direct
-
OPOPorto Airport 06:15 - MXP 09:40 2h 25m Direct
-
OPOPorto Airport 06:15
-
MXPMilan Malpensa Airport 09:40
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 Max 8 Passenger -
Ryanair (FR 4017) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
06:30 OPO10:00 BGY2Hrs, 30m Direct
-
OPOPorto Airport 06:30 - BGY 10:00 2h 30m Direct
-
OPOPorto Airport 06:30
-
BGYMilan Bergamo/Orio al Serio Airport 10:00
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 Max 8 Passenger -
Ryanair (FR 4041) -
- -
- -
- -
- -
- -
- S
- -
- Boeing 737 Max 8 Passenger
-
07:45 OPO11:15 BGY2Hrs, 30m Direct
-
OPOPorto Airport 07:45 - BGY 11:15 2h 30m Direct
-
OPOPorto Airport 07:45
-
BGYMilan Bergamo/Orio al Serio Airport 11:15
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 800
-
10:25 OPO13:55 BGY2Hrs, 30m Direct
-
OPOPorto Airport 10:25 - BGY 13:55 2h 30m Direct
-
OPOPorto Airport 10:25
-
BGYMilan Bergamo/Orio al Serio Airport 13:55
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 Max 8 Passenger -
Ryanair (FR 4041) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 Max 8 Passenger
-
12:35 OPO16:00 MXP2Hrs, 25m Direct
-
OPOPorto Airport 12:35 - MXP 16:00 2h 25m Direct
-
OPOPorto Airport 12:35
-
MXPMilan Malpensa Airport 16:00
- 2h 25m
- Direct
-
Ryanair (FR 4017)Boeing 737 Max 8 Passenger -
Ryanair (FR 4017) -
- -
- -
- -
- -
- F
- -
- -
- Boeing 737 Max 8 Passenger
-
12:45 OPO16:15 BGY2Hrs, 30m Direct
-
OPOPorto Airport 12:45 - BGY 16:15 2h 30m Direct
-
OPOPorto Airport 12:45
-
BGYMilan Bergamo/Orio al Serio Airport 16:15
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- -
- -
- T
- -
- -
- -
- Boeing 737 800
-
14:35 OPO18:05 BGY2Hrs, 30m Direct
-
OPOPorto Airport 14:35 - BGY 18:05 2h 30m Direct
-
OPOPorto Airport 14:35
-
BGYMilan Bergamo/Orio al Serio Airport 18:05
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 800 -
Ryanair (FR 4041) -
- -
- T
- -
- -
- -
- -
- -
- Boeing 737 800
-
15:05 OPO18:35 BGY2Hrs, 30m Direct
-
OPOPorto Airport 15:05 - BGY 18:35 2h 30m Direct
-
OPOPorto Airport 15:05
-
BGYMilan Bergamo/Orio al Serio Airport 18:35
- 2h 30m
- Direct
-
Ryanair (FR 4041)Boeing 737 Max 8 Passenger -
Ryanair (FR 4041) -
- M
- -
- -
- -
- -
- -
- -
- Boeing 737 Max 8 Passenger
-
19:05 OPO22:35 BGY2Hrs, 30m Direct
-
OPOPorto Airport 19:05 - BGY 22:35 2h 30m Direct
-
OPOPorto Airport 19:05
-
BGYMilan Bergamo/Orio al Serio Airport 22:35
- 2h 30m
- Direct
-
Ryanair (FR 4637)Boeing 737 800 -
Ryanair (FR 4637) -
- -
- -
- -
- -
- -
- -
- S
- Boeing 737 800
-
06:00 OPO12:45 MXP5Hrs, 45m 1 Stop (MAD)
-
OPOPorto Airport 06:00 - MXP 12:45 5h 45m 1 Stop (MAD) Madrid
-
OPOPorto Airport 06:00MADMadrid Barajas Airport 10:35
-
MADMadrid Barajas Airport 08:15MXPMilan Malpensa Airport 12:45
- 5h 45m (2h 20m)
- 1 Stop MAD · Madrid 2h 20m
-
Ryanair (FR 573)Boeing 737 800 Ryanair (FR 2753)Boeing 737 800 -
Ryanair (FR 573) -
- -
- -
- -
- -
- -
- -
- S
-
06:15 OPO13:30 LIN6Hrs, 15m 1 Stop (AMS)
-
OPOPorto Airport 06:15 - LIN 13:30 6h 15m 1 Stop (AMS) Amsterdam
-
OPOPorto Airport 06:15AMSAmsterdam Airport 11:50
-
AMSAmsterdam Airport 09:50LINMilan Linate Airport 13:30
- 6h 15m (2h)
- 1 Stop AMS · Amsterdam 2h
-
KLM (KL 1570)Embraer 195 E2 KLM (KL 1615)Embraer 175 -
KLM (KL 1570) -
- -
- -
- -
- T
- F
- -
- -
-
06:20 OPO14:20 MXP7Hrs, 00m 1 Stop (STN)
-
OPOPorto Airport 06:20 - MXP 14:20 7h 1 Stop (STN) London
-
OPOPorto Airport 06:20STNLondon Stansted Airport 11:30
-
STNLondon Stansted Airport 08:35MXPMilan Malpensa Airport 14:20
- 7h (2h 55m)
- 1 Stop STN · London 2h 55m
-
Ryanair (FR 1262)Boeing 737 Max 8 Passenger Ryanair (FR 2757)Boeing 737 800 -
Ryanair (FR 1262) -
- -
- -
- -
- -
- F
- -
- -
-
06:20 OPO13:30 LIN6Hrs, 10m 1 Stop (AMS)
-
OPOPorto Airport 06:20 - LIN 13:30 6h 10m 1 Stop (AMS) Amsterdam
-
OPOPorto Airport 06:20AMSAmsterdam Airport 11:50
-
AMSAmsterdam Airport 09:55LINMilan Linate Airport 13:30
- 6h 10m (1h 55m)
- 1 Stop AMS · Amsterdam 1h 55m
-
KLM (KL 1570)Embraer 195 E2 KLM (KL 1615)Embraer 175 -
KLM (KL 1570) -
- M
- -
- -
- -
- -
- -
- -
-
06:30 OPO14:35 BGY7Hrs, 05m 1 Stop (BVA)
-
OPOPorto Airport 06:30 - BGY 14:35 7h 05m 1 Stop (BVA) Paris
-
OPOPorto Airport 06:30BVAParis Beauvais-Tille Airport 13:05
-
BVAParis Beauvais-Tille Airport 09:40BGYMilan Bergamo/Orio al Serio Airport 14:35
- 7h 05m (3h 25m)
- 1 Stop BVA · Paris 3h 25m
-
Ryanair (FR 594)Boeing 737 Max 8 Passenger Ryanair (FR 3433)Boeing 737 800 -
Ryanair (FR 594) -
- -
- T
- -
- -
- -
- -
- -
-
08:20 OPO14:35 MXP5Hrs, 15m 1 Stop (BVA)
-
OPOPorto Airport 08:20 - MXP 14:35 5h 15m 1 Stop (BVA) Paris
-
OPOPorto Airport 08:20BVAParis Beauvais-Tille Airport 13:05
-
BVAParis Beauvais-Tille Airport 11:30MXPMilan Malpensa Airport 14:35
- 5h 15m (1h 35m)
- 1 Stop BVA · Paris 1h 35m
-
Ryanair (FR 7474)Boeing 737 Max 8 Passenger Ryanair (FR 8883)Boeing 737 Max 8 Passenger -
Ryanair (FR 7474) -
- -
- -
- -
- -
- -
- -
- S
-
08:30 OPO15:10 MXP5Hrs, 40m 1 Stop (BCN)
-
OPOPorto Airport 08:30 - MXP 15:10 5h 40m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:30BCNBarcelona Airport 13:25
-
BCNBarcelona Airport 11:15MXPMilan Malpensa Airport 15:10
- 5h 40m (2h 10m)
- 1 Stop BCN · Barcelona 2h 10m
-
Ryanair (FR 4546)Boeing 737 Max 8 Passenger Ryanair (FR 7541)Boeing 737 800 -
Ryanair (FR 4546) -
- -
- -
- -
- -
- -
- S
- -
-
08:35 OPO16:30 MXP6Hrs, 55m 1 Stop (BCN)
-
OPOPorto Airport 08:35 - MXP 16:30 6h 55m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 08:35BCNBarcelona Airport 14:50
-
BCNBarcelona Airport 11:20MXPMilan Malpensa Airport 16:30
- 6h 55m (3h 30m)
- 1 Stop BCN · Barcelona 3h 30m
-
Vueling Airlines (VY 8475)Airbus Industrie A320 Sharklets Vueling Airlines (VY 6332)Airbus Industrie A320 Sharklets -
Vueling Airlines (VY 8475) -
- -
- -
- W
- -
- -
- -
- -
-
08:45 OPO16:35 BGY6Hrs, 50m 1 Stop (STN)
-
OPOPorto Airport 08:45 - BGY 16:35 6h 50m 1 Stop (STN) London
-
OPOPorto Airport 08:45STNLondon Stansted Airport 13:45
-
STNLondon Stansted Airport 11:10BGYMilan Bergamo/Orio al Serio Airport 16:35
- 6h 50m (2h 35m)
- 1 Stop STN · London 2h 35m
-
Ryanair (FR 1262)Boeing 737 800 Ryanair (FR 2738)Boeing 737 800 -
Ryanair (FR 1262) -
- M
- -
- -
- -
- -
- -
- -
-
09:30 OPO15:30 MXP5Hrs, 00m 1 Stop (VLC)
-
OPOPorto Airport 09:30 - MXP 15:30 5h 1 Stop (VLC) Valencia
-
OPOPorto Airport 09:30VLCValencia Airport 13:30
-
VLCValencia Airport 11:55MXPMilan Malpensa Airport 15:30
- 5h (1h 35m)
- 1 Stop VLC · Valencia 1h 35m
-
Ryanair (FR 1710)Boeing 737 800 Ryanair (FR 7471)Boeing 737 800 -
Ryanair (FR 1710) -
- M
- -
- -
- -
- -
- -
- -
-
09:30 OPO16:55 BGY6Hrs, 25m 1 Stop (VLC)
-
OPOPorto Airport 09:30 - BGY 16:55 6h 25m 1 Stop (VLC) Valencia
-
OPOPorto Airport 09:30VLCValencia Airport 15:00
-
VLCValencia Airport 11:55BGYMilan Bergamo/Orio al Serio Airport 16:55
- 6h 25m (3h 05m)
- 1 Stop VLC · Valencia 3h 05m
-
Ryanair (FR 1710)Boeing 737 800 Ryanair (FR 496)Boeing 737 800 -
Ryanair (FR 1710) -
- M
- -
- -
- -
- -
- -
- -
-
09:40 OPO15:50 MXP5Hrs, 10m 1 Stop (BCN)
-
OPOPorto Airport 09:40 - MXP 15:50 5h 10m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 09:40BCNBarcelona Airport 14:05
-
BCNBarcelona Airport 12:25MXPMilan Malpensa Airport 15:50
- 5h 10m (1h 40m)
- 1 Stop BCN · Barcelona 1h 40m
-
Ryanair (FR 4546)Boeing 737 800 Ryanair (FR 269)Boeing 737 800 -
Ryanair (FR 4546) -
- M
- -
- -
- -
- -
- -
- -
-
10:35 OPO18:00 BGY6Hrs, 25m 1 Stop (STN)
-
OPOPorto Airport 10:35 - BGY 18:00 6h 25m 1 Stop (STN) London
-
OPOPorto Airport 10:35STNLondon Stansted Airport 15:10
-
STNLondon Stansted Airport 13:00BGYMilan Bergamo/Orio al Serio Airport 18:00
- 6h 25m (2h 10m)
- 1 Stop STN · London 2h 10m
-
Ryanair (FR 1276)Boeing 737 Max 8 Passenger Ryanair (FR 4189)Boeing 737 800 -
Ryanair (FR 1276) -
- -
- -
- -
- -
- -
- -
- S
-
10:35 OPO17:05 BGY5Hrs, 30m 1 Stop (STN)
-
OPOPorto Airport 10:35 - BGY 17:05 5h 30m 1 Stop (STN) London
-
OPOPorto Airport 10:35STNLondon Stansted Airport 14:15
-
STNLondon Stansted Airport 13:00BGYMilan Bergamo/Orio al Serio Airport 17:05
- 5h 30m (1h 15m)
- 1 Stop STN · London 1h 15m
-
Ryanair (FR 1276)Boeing 737 Max 8 Passenger Ryanair (FR 3674)Boeing 737 Max 8 Passenger -
Ryanair (FR 1276) -
- -
- -
- -
- -
- -
- -
- S
-
12:00 OPO18:20 MXP5Hrs, 20m 1 Stop (ZRH)
-
OPOPorto Airport 12:00 - MXP 18:20 5h 20m 1 Stop (ZRH) Zurich
-
OPOPorto Airport 12:00ZRHZurich Airport 17:20
-
ZRHZurich Airport 15:35MXPMilan Malpensa Airport 18:20
- 5h 20m (1h 45m)
- 1 Stop ZRH · Zurich 1h 45m
-
TAP Air Portugal (TP 920)Embraer 195 Swiss (LX 1622)Airbus A220 300 -
TAP Air Portugal (TP 920) -
- -
- -
- -
- -
- F
- -
- -
-
13:05 OPO20:00 BGY5Hrs, 55m 1 Stop (VIE)
-
OPOPorto Airport 13:05 - BGY 20:00 5h 55m 1 Stop (VIE) Vienna
-
OPOPorto Airport 13:05VIEVienna Airport 18:35
-
VIEVienna Airport 17:20BGYMilan Bergamo/Orio al Serio Airport 20:00
- 5h 55m (1h 15m)
- 1 Stop VIE · Vienna 1h 15m
-
Ryanair (FR 752)Boeing 737 Max 8 Passenger Ryanair (FR 8192)Airbus -
Ryanair (FR 752) -
- M
- -
- -
- -
- -
- -
- -
-
13:20 OPO20:55 BGY6Hrs, 35m 1 Stop (STN)
-
OPOPorto Airport 13:20 - BGY 20:55 6h 35m 1 Stop (STN) London
-
OPOPorto Airport 13:20STNLondon Stansted Airport 18:05
-
STNLondon Stansted Airport 15:45BGYMilan Bergamo/Orio al Serio Airport 20:55
- 6h 35m (2h 20m)
- 1 Stop STN · London 2h 20m
-
Ryanair (FR 7705)Boeing 737 Max 8 Passenger Ryanair (FR 3674)Boeing 737 800 -
Ryanair (FR 7705) -
- -
- -
- -
- -
- -
- S
- -
-
13:50 OPO21:00 BGY6Hrs, 10m 1 Stop (STN)
-
OPOPorto Airport 13:50 - BGY 21:00 6h 10m 1 Stop (STN) London
-
OPOPorto Airport 13:50STNLondon Stansted Airport 18:10
-
STNLondon Stansted Airport 16:15BGYMilan Bergamo/Orio al Serio Airport 21:00
- 6h 10m (1h 55m)
- 1 Stop STN · London 1h 55m
-
Ryanair (FR 7699)Boeing 737 Max 8 Passenger Ryanair (FR 3674)Boeing 737 Max 8 Passenger -
Ryanair (FR 7699) -
- M
- -
- -
- -
- -
- -
- -
-
13:50 OPO21:55 BGY7Hrs, 05m 1 Stop (STN)
-
OPOPorto Airport 13:50 - BGY 21:55 7h 05m 1 Stop (STN) London
-
OPOPorto Airport 13:50STNLondon Stansted Airport 19:05
-
STNLondon Stansted Airport 16:15BGYMilan Bergamo/Orio al Serio Airport 21:55
- 7h 05m (2h 50m)
- 1 Stop STN · London 2h 50m
-
Ryanair (FR 7699)Boeing 737 Max 8 Passenger Ryanair (FR 4192)Boeing 737 800 -
Ryanair (FR 7699) -
- M
- -
- -
- -
- -
- -
- -
-
14:10 OPO20:00 MXP4Hrs, 50m 1 Stop (VLC)
-
OPOPorto Airport 14:10 - MXP 20:00 4h 50m 1 Stop (VLC) Valencia
-
OPOPorto Airport 14:10VLCValencia Airport 18:00
-
VLCValencia Airport 16:35MXPMilan Malpensa Airport 20:00
- 4h 50m (1h 25m)
- 1 Stop VLC · Valencia 1h 25m
-
Ryanair (FR 1710)Boeing 737 Max 8 Passenger Ryanair (FR 7471)Boeing 737 Max 8 Passenger -
Ryanair (FR 1710) -
- -
- -
- -
- -
- -
- -
- S
-
14:10 OPO21:50 BGY6Hrs, 40m 1 Stop (VLC)
-
OPOPorto Airport 14:10 - BGY 21:50 6h 40m 1 Stop (VLC) Valencia
-
OPOPorto Airport 14:10VLCValencia Airport 19:55
-
VLCValencia Airport 16:35BGYMilan Bergamo/Orio al Serio Airport 21:50
- 6h 40m (3h 20m)
- 1 Stop VLC · Valencia 3h 20m
-
Ryanair (FR 1710)Boeing 737 Max 8 Passenger Ryanair (FR 4664)Boeing 737 Max 8 Passenger -
Ryanair (FR 1710) -
- -
- -
- -
- -
- -
- -
- S
-
14:15 OPO21:30 BGY6Hrs, 15m 1 Stop (MAN)
-
OPOPorto Airport 14:15 - BGY 21:30 6h 15m 1 Stop (MAN) Manchester
-
OPOPorto Airport 14:15MANManchester International Airport 18:20
-
MANManchester International Airport 16:45BGYMilan Bergamo/Orio al Serio Airport 21:30
- 6h 15m (1h 35m)
- 1 Stop MAN · Manchester 1h 35m
-
Ryanair (FR 1174)Boeing 737 800 Ryanair (FR 3216)Boeing 737 800 -
Ryanair (FR 1174) -
- M
- -
- -
- -
- -
- -
- -
-
14:15 OPO20:45 BGY5Hrs, 30m 1 Stop (SVQ)
-
OPOPorto Airport 14:15 - BGY 20:45 5h 30m 1 Stop (SVQ) Seville
-
OPOPorto Airport 14:15SVQSevilla Airport 18:10
-
SVQSevilla Airport 16:25BGYMilan Bergamo/Orio al Serio Airport 20:45
- 5h 30m (1h 45m)
- 1 Stop SVQ · Seville 1h 45m
-
Ryanair (FR 5467)Boeing 737 Max 8 Passenger Ryanair (FR 77)Boeing 737 Max 8 Passenger -
Ryanair (FR 5467) -
- -
- -
- -
- -
- F
- -
- -
-
17:30 OPO00:50 MXP6Hrs, 20m 1 Stop (BCN)
-
OPOPorto Airport 17:30 - MXP 00:50 6h 20m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 17:30BCNBarcelona Airport 23:05
-
BCNBarcelona Airport 20:15MXPMilan Malpensa Airport 00:50
- 6h 20m (2h 50m)
- 1 Stop BCN · Barcelona 2h 50m
-
Ryanair (FR 4586)Boeing 737 Max 8 Passenger Ryanair (FR 269)Boeing 737 Max 8 Passenger -
Ryanair (FR 4586) -
- -
- -
- -
- -
- F
- -
- -
-
18:05 OPO00:50 MXP5Hrs, 45m 1 Stop (MAD)
-
OPOPorto Airport 18:05 - MXP 00:50 5h 45m 1 Stop (MAD) Madrid
-
OPOPorto Airport 18:05MADMadrid Barajas Airport 22:40
-
MADMadrid Barajas Airport 20:20MXPMilan Malpensa Airport 00:50
- 5h 45m (2h 20m)
- 1 Stop MAD · Madrid 2h 20m
-
Ryanair (FR 5483)Boeing 737 800 Ryanair (FR 3009)Boeing 737 800 -
Ryanair (FR 5483) -
- -
- -
- -
- -
- -
- -
- S
-
18:35 OPO00:45 BGY5Hrs, 10m 1 Stop (BCN)
-
OPOPorto Airport 18:35 - BGY 00:45 5h 10m 1 Stop (BCN) Barcelona
-
OPOPorto Airport 18:35BCNBarcelona Airport 23:00
-
BCNBarcelona Airport 21:20BGYMilan Bergamo/Orio al Serio Airport 00:45
- 5h 10m (1h 40m)
- 1 Stop BCN · Barcelona 1h 40m
-
Ryanair (FR 4586)Boeing 737 800 Ryanair (FR 6353)Boeing 737 800 -
Ryanair (FR 4586) -
- M
- -
- -
- -
- -
- -
- -
The fastest flight time for direct flights from Porto to Milan is 2 hours 25 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 06:00. The last flight of the day departs at 06:00. See the full list of flight times on Wego.
There are 1 airlines that offer direct flights from Porto to Milan. Find out the list of airlines on Wego.
All Airports in Porto
Porto Airport OPO