- Must visit
Museu de Arte Contemporânea de Serralves
Major contemporary art museum in a landscaped park. Visit for Portuguese and international modern art in a calm setting.
Cheapest price on 13 Oct
£89
Average ticket price on 13 Oct
£382
Fastest journey on 13 Oct
2 h 35 m
Average journey duration on 13 Oct
3 h 3 m
Flights on 13 Oct
88
Distance
1514 km
The best way to find a cheap flight ticket from Milan to Porto is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Milan to Porto will cost around £382 if you buy it on the day, but you can find cheap flight tickets today for only £89.
On Tue 13 Oct, we found 88 flights from Milan to Porto, including 4 direct services.
These direct flights cover the 1514 km distance in an average of 3 h 3 m but if you time it right, some flights will get you there in just 2 h 35 m .
The slowest flights will take 4 h 35 m and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
TP825 · TP1920
TP825 · TP1938
FR 4042
VY6339 · VY8482
TP827 · TP1920
U25453
FR 8952
FR 4018
FR 4042
UX1060 · UX1141Flights from Milan to Porto depart on average 84 times per day, taking around 4h 6m. Cheap flight tickets for this journey start at £17 but you can travel from only £13 by coach.
There are 3 flights per day. The earliest flight runs at 02:50, the last at 23:55. The fastest flight covers the 1514 km distance in 2h 25m. July is the cheapest month to fly.
Distance 1514 km |
Average flight duration 4h 6m |
Cheapest ticket price £17 |
Flights per day 84 |
Direct flights 3 |
Fastest flight 2h 25m |
First flight 2:50 |
Last flight 23:55 |
Cheapest Month Jul |
Cheapest Day Sat |
High Season Jul - Sept |
Low Season Jan - Mar |
Busiest Day Tue |
Least Busy Day Wed |
Best time to book 77 days |
The table below shows live departures for Milan to Porto flights for today, Monday 12 October. You can also manually refresh the results below to see updated flight journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
AF1213 · AF1516 | 9:45 Milan Linate Airport | 13h15 | 22:00 Porto Airport | 1 change | |
AF1213 · AF1528 | 9:45 Milan Linate Airport | 6h45 | 15:30 Porto Airport | 1 change | |
VY6331 · VY8478 | 10:00 Milan Malpensa Airport | 7h10 | 16:10 Porto Airport | 1 change | |
VY6331 · VY8480 | 10:00 Milan Malpensa Airport | 12h20 | 21:20 Porto Airport | 1 change | |
IB5537 · IB5642 | 10:00 Milan Malpensa Airport | 7h10 | 16:10 Porto Airport | 1 change | |
IB5537 · IB5644 | 10:00 Milan Malpensa Airport | 12h20 | 21:20 Porto Airport | 1 change | |
IB672 · IB1153 | 10:25 Milan Malpensa Airport | 10h35 | 20:00 Porto Airport | 1 change | |
IB672 · IB1151 | 10:25 Milan Malpensa Airport | 6h35 | 16:00 Porto Airport | 1 change | |
BA7302+ BA2668 | 10:40 Milan Linate Airport | 10h55 | 20:35 Porto Airport | 1 change | |
LX1613 · LX2806 · LX2074 | 10:40 Milan Malpensa Airport | 9h40 | 19:20 Porto Airport | 2 changes | |
TK1874 · TK1451 | 10:45 Milan Malpensa Airport | 30h05 | 15:50 Porto Airport | 1 change | |
TK1874 · TK1449 | 10:45 Milan Malpensa Airport | 23h55 | 9:40 Porto Airport | 1 change | |
TK1874 · TK1779+ TK8120 | 10:45 Milan Malpensa Airport | 23h15 | 9:00 Porto Airport | 2 changes | |
VY6345 · VY8478 | 11:00 Milan Malpensa Airport | 6h10 | 16:10 Porto Airport | 1 change | |
IB5713 · IB5644 | 11:00 Milan Malpensa Airport | 11h20 | 21:20 Porto Airport | 1 change | |
KL1614 · KL1573 | 11:00 Milan Linate Airport | 5h30 | 15:30 Porto Airport | 1 change | |
IB5713 · IB5642 | 11:00 Milan Malpensa Airport | 6h10 | 16:10 Porto Airport | 1 change | |
KL1614 · KL1577 | 11:00 Milan Linate Airport | 12h15 | 22:15 Porto Airport | 1 change | |
VY6345 · VY8480 | 11:00 Milan Malpensa Airport | 11h20 | 21:20 Porto Airport | 1 change | |
KL1614 · KL1575 | 11:00 Milan Linate Airport | 9h05 | 19:05 Porto Airport | 1 change | |
UX1066 · UX1141 | 11:05 Milan Malpensa Airport | 9h15 | 19:20 Porto Airport | 1 change | |
UX1066 · UX1147 | 11:05 Milan Malpensa Airport | 20h45 | 6:50 Porto Airport | 1 change | |
UX1066 · UX1143 | 11:05 Milan Malpensa Airport | 5h10 | 15:15 Porto Airport | 1 change | |
BA569+ BA2668 | 11:10 Milan Linate Airport | 10h25 | 20:35 Porto Airport | 1 change | |
LH249 · LH1178 | 11:20 Milan Malpensa Airport | 5h20 | 15:40 Porto Airport | 1 change | |
U25453 | 11:20 Milan Linate Airport | 2h40 | 13:00 Porto Airport | 0 changesdirect | |
AF1331 · AF1528 | 11:25 Milan Malpensa Airport | 5h05 | 15:30 Porto Airport | 1 change | |
AF1331 · AF1516 | 11:25 Milan Malpensa Airport | 11h35 | 22:00 Porto Airport | 1 change | |
IB664 · IB1153 | 11:40 Milan Linate Airport | 9h20 | 20:00 Porto Airport | 1 change | |
IB664 · IB1151 | 11:40 Milan Linate Airport | 5h20 | 16:00 Porto Airport | 1 change | |
TP823 · TP1934 | 11:50 Milan Malpensa Airport | 9h45 | 20:35 Porto Airport | 1 change | |
TP823 · TP1930 | 11:50 Milan Malpensa Airport | 6h10 | 17:00 Porto Airport | 1 change | |
TP823 · TP1932 | 11:50 Milan Malpensa Airport | 8h10 | 19:00 Porto Airport | 1 change | |
FR 4018 | 12:05 Milan Malpensa Airport | 2h40 | 13:45 Porto Airport | 0 changesdirect | |
BA583+ BA2668 | 12:15 Milan Malpensa Airport | 9h20 | 20:35 Porto Airport | 1 change | |
AF1413 · AF1516 | 12:25 Milan Linate Airport | 10h35 | 22:00 Porto Airport | 1 change | |
KL1616 · KL1577 | 13:00 Milan Linate Airport | 10h15 | 22:15 Porto Airport | 1 change | |
KL1616 · KL1575 | 13:00 Milan Linate Airport | 7h05 | 19:05 Porto Airport | 1 change | |
BA571+ BA2668 | 13:40 Milan Linate Airport | 7h55 | 20:35 Porto Airport | 1 change | |
IB674 · IB1153 | 14:25 Milan Malpensa Airport | 6h35 | 20:00 Porto Airport | 1 change | |
AF1013 · AF1516 | 14:55 Milan Linate Airport | 8h05 | 22:00 Porto Airport | 1 change | |
LX1629+ LX2064 | 14:55 Milan Malpensa Airport | 4h20 | 18:15 Porto Airport | 1 change | |
U26886 | 14:55 Milan Malpensa Airport | 2h40 | 16:35 Porto Airport | 0 changesdirect | |
TK1896 · TK1449 | 15:20 Milan Malpensa Airport | 19h20 | 9:40 Porto Airport | 1 change | |
TK1896 · TK1451 | 15:20 Milan Malpensa Airport | 25h30 | 15:50 Porto Airport | 1 change | |
IB5545 · IB5644 | 15:30 Milan Malpensa Airport | 6h50 | 21:20 Porto Airport | 1 change | |
VY6341 · VY8480 | 15:30 Milan Malpensa Airport | 6h50 | 21:20 Porto Airport | 1 change | |
UX1060 · UX1147 | 15:45 Milan Malpensa Airport | 16h05 | 6:50 Porto Airport | 1 change | |
AF1231 · AF1516 | 15:45 Milan Malpensa Airport | 7h15 | 22:00 Porto Airport | 1 change | |
UX1060 · UX1145 | 15:45 Milan Malpensa Airport | 20h05 | 10:50 Porto Airport | 1 change | |
UX1060 · UX1141 | 15:45 Milan Malpensa Airport | 4h35 | 19:20 Porto Airport | 1 change | |
IB5539 · IB5644 | 16:45 Milan Malpensa Airport | 5h35 | 21:20 Porto Airport | 1 change | |
VY6333 · VY8480 | 16:45 Milan Malpensa Airport | 5h35 | 21:20 Porto Airport | 1 change | |
KL1618 · KL1577 | 16:50 Milan Linate Airport | 6h25 | 22:15 Porto Airport | 1 change | |
TP825 · TP1936 | 17:25 Milan Malpensa Airport | 6h35 | 23:00 Porto Airport | 1 change | |
TP825 · TP1938 | 17:25 Milan Malpensa Airport | 8h15 | 0:40 Porto Airport | 1 change | |
LH5125+ LH1788 | 17:35 Milan Linate Airport | 6h50 | 23:25 Porto Airport | 1 change | |
LH5125+ LH6992 · LH6976 | 17:35 Milan Linate Airport | 8h05 | 0:40 Porto Airport | 2 changes | |
LH5125+ LH1780+ LH6976 | 17:35 Milan Linate Airport | 8h05 | 0:40 Porto Airport | 2 changes | |
UX1062 · UX1143 | 18:15 Milan Malpensa Airport | 22h00 | 15:15 Porto Airport | 1 change | |
UX1062 · UX1147 | 18:15 Milan Malpensa Airport | 13h35 | 6:50 Porto Airport | 1 change | |
UX1062 · UX1145 | 18:15 Milan Malpensa Airport | 17h35 | 10:50 Porto Airport | 1 change | |
LH1855+ LH1780+ LH6976 | 18:25 Milan Linate Airport | 7h15 | 0:40 Porto Airport | 2 changes | |
LH1855+ LH1788 | 18:25 Milan Linate Airport | 6h00 | 23:25 Porto Airport | 1 change | |
BA577+ BA2666 | 18:30 Milan Linate Airport | 15h15 | 8:45 Porto Airport | 1 change | |
LH255+ LH1180 | 18:50 Milan Malpensa Airport | 5h05 | 22:55 Porto Airport | 1 change | |
W46335 | 19:20 Milan Malpensa Airport | 2h50 | 21:10 Porto Airport | 0 changesdirect | |
BA579+ BA2666 | 19:30 Milan Linate Airport | 14h15 | 8:45 Porto Airport | 1 change | |
BA587+ BA2666 | 19:30 Milan Malpensa Airport | 14h15 | 8:45 Porto Airport | 1 change | |
TK1876 · TK1451 | 19:45 Milan Malpensa Airport | 21h05 | 15:50 Porto Airport | 1 change | |
TK1876 · TK1449 | 19:45 Milan Malpensa Airport | 14h55 | 9:40 Porto Airport | 1 change | |
TP827 · TP1922 | 20:00 Milan Malpensa Airport | 14h00 | 9:00 Porto Airport | 1 change | |
TP827 · TP1938 | 20:00 Milan Malpensa Airport | 5h40 | 0:40 Porto Airport | 1 change | |
TP827 · TP1920 | 20:00 Milan Malpensa Airport | 12h50 | 7:50 Porto Airport | 1 change | |
BA7306+ BA2666 | 20:30 Milan Linate Airport | 13h15 | 8:45 Porto Airport | 1 change | |
FR 4638 | 21:05 Milan Bergamo Orio al Serio Airport | 2h45 | 22:50 Porto Airport | 0 changesdirect | |
KL1682 · KL1571 | 22:10 Milan Linate Airport | 13h30 | 10:40 Porto Airport | 1 change | |
| Tuesday 13 October | |||||
TP829 · TP1928 | 5:50 Milan Malpensa Airport | 10h10 | 15:00 Porto Airport | 1 change | |
TP829 · TP1924 | 5:50 Milan Malpensa Airport | 5h10 | 10:00 Porto Airport | 1 change | |
TP829 · TP1930 | 5:50 Milan Malpensa Airport | 12h10 | 17:00 Porto Airport | 1 change | |
LX1639+ LX2066 | 5:50 Milan Malpensa Airport | 6h35 | 11:25 Porto Airport | 1 change | |
LH1782+ LH7433 | 6:20 Milan Malpensa Airport | 5h00 | 10:20 Porto Airport | 1 change | |
AF1131 · AF1528 | 6:45 Milan Malpensa Airport | 9h40 | 15:25 Porto Airport | 1 change | |
AF1131 · AF1516 | 6:45 Milan Malpensa Airport | 16h15 | 22:00 Porto Airport | 1 change | |
TK1878 · TK1759+ TK8130 | 6:50 Milan Malpensa Airport | 13h10 | 19:00 Porto Airport | 2 changes | |
TK1878 · TK1449 | 6:50 Milan Malpensa Airport | 27h55 | 9:45 Porto Airport | 1 change | |
TK1878 · TK1451 | 6:50 Milan Malpensa Airport | 10h00 | 15:50 Porto Airport | 1 change | |
LH1176+ LH281 | 6:50 Milan Linate Airport | 5h25 | 11:15 Porto Airport | 1 change | |
LH1166+ LH6968+ LH281 | 6:50 Milan Linate Airport | 9h10 | 15:00 Porto Airport | 2 changes | |
TK1878 · TK1759+ TK8140 | 6:50 Milan Malpensa Airport | 14h35 | 20:25 Porto Airport | 2 changes | |
SN4164+ SN3811 | 7:00 Milan Linate Airport | 6h05 | 12:05 Porto Airport | 1 change | |
OS530 · OS491 | 7:00 Milan Linate Airport | 6h40 | 12:40 Porto Airport | 1 change | |
BA581+ BA2668 | 7:25 Milan Linate Airport | 13h40 | 20:05 Porto Airport | 1 change | |
BA581+ BA7055+ IB1151 | 7:25 Milan Linate Airport | 9h35 | 16:00 Porto Airport | 2 changes | |
IB668 · IB1151 | 7:50 Milan Linate Airport | 9h10 | 16:00 Porto Airport | 1 change | |
IB668 · IB1153 | 7:50 Milan Linate Airport | 13h10 | 20:00 Porto Airport | 1 change | |
IB668 · IB1149 | 7:50 Milan Linate Airport | 4h55 | 11:45 Porto Airport | 1 change | |
BA591+ BA7055+ IB1151 | 8:30 Milan Malpensa Airport | 8h30 | 16:00 Porto Airport | 2 changes | |
BA591+ BA2668 | 8:30 Milan Malpensa Airport | 12h35 | 20:05 Porto Airport | 1 change | |
LH1778+ LH6988+ LH9513 | 8:45 Milan Malpensa Airport | 9h15 | 17:00 Porto Airport | 2 changes | |
Find all the dates and times for this journey
Discover the best of Porto — top attractions, local food, transport tips, budget advice, and currency essentials. Plan your perfect Porto trip today.
Major contemporary art museum in a landscaped park. Visit for Portuguese and international modern art in a calm setting.
Historic prison building showing Portuguese photography from the nineteenth century onwards. Admission is normally free.
Museum on Portuguese discoveries and maritime trade with full-scale scenes and interactive displays, suitable for families and first-time visitors.
Steep medieval quarter by the Douro with colourful houses, river views and lively lanes. Ideal for walking and classic Porto atmosphere.
Terraced riverside garden with one of Porto’s best skyline viewpoints. Popular at sunset and easy to combine with the upper bridge walk.
Large urban park leading to the Atlantic coast. Excellent for walks, cycling, birdlife and a break from the busy historic centre.
Porto’s iconic sandwich layered with cured meats and steak, covered in melted cheese and a rich beer-based sauce, usually served with chips.
A slow-cooked tripe and white bean stew with pork, sausages and vegetables, strongly linked to Porto’s historic working-class cooking.
Salt cod baked with cream, onion and potato, then topped with cheese. Bacalhau dishes are central to Portuguese tradition and widely loved in Porto.
Historic riverside restaurant known for roast meats, game and old-school Porto cooking in a characterful dining room.
Elegant contemporary restaurant serving refined Portuguese dishes and tasting menus in a calm central setting.
Long-established seafood restaurant by the coast, popular for grilled fish, shellfish and a relaxed Matosinhos atmosphere.
Moderate for Western Europe; rooms, meals and local transport are usually cheaper than in Lisbon or many other major European city breaks.
Tipping is optional. In restaurants, round up or leave 5-10% for good service; cafés often just round up. Taxis are usually rounded up to the nearest euro.
Official public transport app
Aeroporto -> Trindade, Porto
Traveling from Italy's northern hub to northern Portugal could hardly be easier, thanks to numerous daily flights from Milan to Porto. Direct flights cover the 1,500 kilometer distance between the two cities in between two hours 35 minutes and two hours 45 minutes, while the fastest services with a change will take four hours 30 minutes. Travelers can expect a choice of 3-4 direct flights during the week, and four options on Saturdays and Sundays. And they will also have plenty of indirect flights to choose from, which could be suitable alternatives, giving travelers a tonne of choice when planning their vacation.
Two major airlines provide direct flights from Milan to Porto, meaning that travelers will have a mix of low cost and premium flights to choose from. TAP operates a year-round schedule and provides the most frequent service, while the budget operator Ryanair offers an alternative. If direct flights with those dependable airlines aren't available, indirect options can be booked with a diverse range of airlines, including Iberia and Brussels Airlines. Both fly to Porto with a single stop, generally in Madrid or Brussels.
When they need to fly from Milan to Porto, travelers won't generally need to spend too long onboard a plane. The direct journey time between the two cities fluctuates a little, but will be between two hours 35 minutes and two hours 45 minutes. When passengers choose indirect journeys, flight times will be slightly extended, but should still be manageable in many cases. The fastest indirect flights take four hours 30 minutes to reach Porto, and many take less than six hours. However, there will be a few with journey times above 10 hours, meaning that customers should take care to book the fastest services possible.
Flights leave Milan for Porto every day of the year, and there should be convenient departures for those who need to travel in the morning, afternoon, or evening. During the week, travelers can choose between 3-4 direct flights, and there will also be four options on Saturdays and Sundays. These direct flights will be complemented by 3-4 indirect options with journey times of under five hours, and many more with slightly longer journey durations.
Departure airports: TAP flights to Porto will depart from Milan Malpensa Airport (MXP). The best way to get there is via the Malpensa Express, which runs from Milan Centrale. Extensive parking is also available, for both short and long term stays. Some Ryanair flights leave from Bergamo Orio al Serio (BGY). Terravision buses run from central Milan, while there are parking lots on-site. Both airports offer free WiFi, as well as food, drink, and shopping opportunities. Travelers should be sure to plan their route to either airport in advance, particularly for early flights, as traffic and limited nighttime transport options can affect the route.
Arrival airport: All flights from Milan to Porto will arrive at Porto Airport (OPO). metro rail services run directly from the airport to central Porto, along with various local buses. Free WiFi is available for all visitors, making taxi bookings relatively easy, while car hire outlets are also present, including Avis, Budget, Europcar, and Sixt.
Find answers to the most common questions about traveling from Milan to Porto by flight. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest flight, the cheapest option, or tips for making the most of your visit at Porto, this guide helps you travel smarter and with confidence.

Most Milan to Porto flights use the Milan Malpensa Airport to Porto Airport airport pair. Use this guide to compare Milan and Porto airports on this route, check city-centre transport, alongside checking practicalities like airport facilities and services.
Milan Malpensa Airport is 2 km from Milan city centre. Public transport options include:
Milan Malpensa Airport has practical services for this route, including Wifi, Shopping, Parking, ATM, Taxis, Accessibility, WC, Shower, Lounge and Lost and Found Office.
Free Wi-Fi available throughout the airport. ATMs are located in both terminals, near check-inas and gates.
Lost and found is available at the station.
Available at Milan Malpensa Airport: Parking, Taxis, WC.
Accessibility facilities are available at Milan Malpensa Airport: Elevators, ramps.
Milan Linate Airport is 6 km from Milan city centre. Public transport options include:
Milan Linate Airport has practical services for this route, including Wifi, Shopping, Parking, ATM, Taxis, Accessibility, WC, Shower, Lounge and Lost and Found Office.
Free Wi-Fi available throughout the airport. ATMs are located in the arrivals and departures areas.
Lost and found is available at the station.
Available at Milan Linate Airport: Parking, Taxis, WC.
Accessibility facilities are available at Milan Linate Airport: Ramps, assistance.
Milan Bergamo Orio al Serio Airport is 1 km from Milan city centre. Public transport options include:
Milan Bergamo Orio al Serio Airport has practical services for this route, including Wifi, Shopping, Parking, ATM, Taxis, Accessibility, WC, Shower, Lounge and Lost and Found Office.
Free Wi-Fi available throughout the airport. ATMs are located in the arrivals and departures areas.
Lost and found is available at the station.
Available at Milan Bergamo Orio al Serio Airport: Parking, Taxis, WC.
Accessibility facilities are available at Milan Bergamo Orio al Serio Airport: Elevators, ramps.
Porto Airport is 1 km from Porto city centre. Public transport options include:
Porto Airport has practical services for this route, including Wifi, Shopping, Parking, ATM, Taxis, Accessibility, WC, Shower, Lounge and Lost and Found Office.
Free Wi-Fi available throughout the airport. ATMs are located in arrivals and departures.
Lost and found is available at the station.
Available at Porto Airport: Parking, Taxis, WC.
Accessibility facilities are available at Porto Airport: Elevators, ramps.
Here are some other resources that might have the information you need