• Our partners include:

  • RailEurope
  • Deutsche Bahn
  • Trenitalia
  • SNCF
  • Flixbus
  • RENFE
  • Ouibus
  • BlaBlaCar
  • Booking.com
  • Skyscanner

There are 10 ways to get from Milan to Porto by plane, train, bus or car

Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2rio's travel planner.

Recommended option

Fly from Milan Malpensa  •  5h 42m

  1. Fly from Milan Malpensa (MXP) to Porto (OPO) MXP - OPO

$49 - $248

Cheapest option

Fly from Milan Bergamo  •  5h 55m

  1. Fly from Milan Bergamo (BGY) to Porto (OPO) BGY - OPO

$37 - $283

8 alternative options

Fly from Milan Linate  •  6h 49m

  1. Fly from Milan Linate (LIN) to Porto (OPO) LIN - OPO

$88 - $444

Train to Zurich, fly  •  9h 25m

  1. Take the train from Milano Centrale to Zürich HB
  2. Fly from Zurich (ZRH) to Porto (OPO) ZRH - OPO

$88 - $349

Train to Geneva, fly  •  9h 7m

  1. Take the train from Milano Centrale to Geneve
  2. Fly from Geneva (GVA) to Porto (OPO) GVA - OPO

$90 - $341

Train  •  29h 38m

  1. Take the train from Milano Porta Garibaldi to Chambery-Challes-E Tgv
  2. Take the train from Chambery-Challes-E to Valence TGV
  3. Take the train from Valence TGV to Barcelona Sants Tgv / ...
  4. Take the train from Barcelona Sants to Vigo-Guixar A
  5. Take the train from Vigo-Guixar to Porto(Campanha) Ic

$329 - $443

Bus FlixBus  •  32h 45m

  1. Take the bus from Milan, Milan to Grenoble N740
  2. Take the bus from Grenoble to Porto, Porto K783

$118 - $207

Train, bus  •  33h 19m

  1. Take the train from Milano Centrale to Sion Eurocity / ...
  2. Take the bus from Sion to Porto

$175 - $219

Bus Eurolines FR  •  35h 31m

  1. Take the bus from Milan to Nice
  2. Take the bus from Nice to Porto

$152 - $317

Drive  •  18h 47m

  1. Drive from Milan to Porto 1241.4 miles

$290 - $440

Questions & Answers

The cheapest way to get from Milan to Porto is to fly which costs 30€ - 250€ and takes 5h 55m.

More details

The quickest way to get from Milan to Porto is to fly which costs 40€ - 220€ and takes 5h 42m.

More details

No, there is no direct bus from Milan to Porto. However, there are services departing from via orefici p.za cordusio and arriving at Porto, Porto via Milan, Milan and Grenoble. The journey, including transfers, takes approximately 32h 45m.

More details

No, there is no direct train from Milan to Porto. However, there are services departing from Milano Porta Garibaldi and arriving at Porto(Campanha) via Chambery-Challes-E, Valence TGV, Barcelona Sants and Vigo-Guixar. The journey, including transfers, takes approximately 29h 38m.

More details

The distance between Milan and Porto is 1514 km. The road distance is 1986.2 km.

Get driving directions

The best way to get from Milan to Porto without a car is to train which takes 29h 38m and costs 280€ - 390€.

More details

It takes approximately 5h 42m to get from Milan to Porto, including transfers.

More details

Milan to Porto bus services, operated by FlixBus, depart from Milan, Milan station.

More details

Milan to Porto train services, operated by inOui TGV, depart from Milano Porta Garibaldi station.

More details

The best way to get from Milan to Porto is to fly which takes 5h 42m and costs 40€ - 220€. Alternatively, you can train, which costs 280€ - 390€ and takes 29h 38m, you could also bus, which costs 100€ - 180€ and takes 32h 45m.

Mode details

Map of how to get from Milan to Porto.
Launch map view
  • Distance: 946.5 miles
  • Duration: 5h 42m

What companies run services between Milan, Italy and Porto, Portugal?

Ryanair, TAP Portugal and seven other airlines fly from Milan to Porto hourly. Alternatively, you can take a train from Milan to Porto via Chambery-Challes-E, Valence TGV, Barcelona Sants, and Vigo-Guixar in around 29h 38m.

Airlines
TAP Portugal
Website
flytap.com
Flights from Milan Malpensa to Porto
Ave. Duration
2h 45m
When
Every day
Estimated price
$75 - $600
Flights from Milan Malpensa to Porto via Lisbon
Ave. Duration
4h 50m
When
Every day
Estimated price
$75 - $600
Flights from Zurich to Porto
Ave. Duration
2h 35m
When
Every day
Estimated price
$90 - $550
Flights from Zurich to Porto via Lisbon
Ave. Duration
5h 6m
When
Every day
Estimated price
$85 - $550
Flights from Geneva to Porto
Ave. Duration
2h 16m
When
Every day
Estimated price
$75 - $550
Flights from Geneva to Porto via Lisbon
Ave. Duration
4h 35m
When
Every day
Estimated price
$75 - $490
easyJet
Website
easyjet.com
Flights from Milan Malpensa to Porto via Toulouse
Ave. Duration
5h
When
Friday and Sunday
Estimated price
$150 - $650
Flights from Milan Malpensa to Porto via Luxembourg
Ave. Duration
5h 5m
When
Sunday
Estimated price
$150 - $650
Flights from Milan Malpensa to Porto via London Gatwick
Ave. Duration
5h 35m
When
Monday, Wednesday and Friday
Estimated price
$150 - $650
Flights from Milan Linate to Porto via London Gatwick
Ave. Duration
6h 10m
When
Monday, Wednesday and Friday
Estimated price
$120 - $600
Flights from Milan Linate to Porto via Geneva
Ave. Duration
3h 55m
When
Monday and Wednesday
Estimated price
$120 - $600
Flights from Zurich to Porto
Ave. Duration
2h 40m
When
Tuesday, Thursday and Saturday
Estimated price
$170 - $850
Flights from Geneva to Porto
Ave. Duration
2h 20m
When
Every day
Estimated price
$75 - $440
Ryanair
Website
ryanair.com
Flights from Milan Malpensa to Porto
Ave. Duration
2h 35m
When
Monday, Thursday, Friday and Sunday
Estimated price
$28 - $350
Flights from Milan Malpensa to Porto via London Stansted
Ave. Duration
5h 35m
When
Every day
Estimated price
$28 - $350
Flights from Milan Bergamo to Porto
Ave. Duration
2h 35m
When
Monday, Wednesday, Thursday, Friday, Saturday and Sunday
Estimated price
$35 - $420
Flights from Milan Bergamo to Porto via Beauvais
Ave. Duration
5h 25m
When
Monday, Wednesday, Friday and Sunday
Estimated price
$35 - $420
Flights from Milan Bergamo to Porto via Barcelona
Ave. Duration
5h 30m
When
Every day
Estimated price
$35 - $420
Flights from Milan Bergamo to Porto via London Stansted
Ave. Duration
5h 50m
When
Every day
Estimated price
$35 - $420
Flights from Milan Bergamo to Porto via Eindhoven
Ave. Duration
6h 5m
When
Monday, Wednesday, Friday, Saturday and Sunday
Estimated price
$35 - $420
Iberia
Website
iberia.com
Flights from Milan Malpensa to Porto via Barcelona
Ave. Duration
4h 17m
When
Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday
Estimated price
$100 - $550
Flights from Milan Malpensa to Porto via Paris Orly
Ave. Duration
5h 35m
When
Monday and Friday
Estimated price
$100 - $550
Flights from Milan Linate to Porto via Madrid
Ave. Duration
5h 5m
When
Every day
Estimated price
$170 - $700
Flights from Zurich to Porto via Madrid
Ave. Duration
5h 17m
When
Every day
Estimated price
$110 - $700
Flights from Geneva to Porto via Madrid
Ave. Duration
4h 40m
When
Every day
Estimated price
$120 - $650
Swiss
Website
swiss.com
Flights from Zurich to Porto
Ave. Duration
2h 35m
When
Every day
Estimated price
$90 - $550
Flights from Zurich to Porto via Geneva
Ave. Duration
4h 40m
When
Monday, Wednesday, Thursday, Friday, Saturday and Sunday
Estimated price
$90 - $550
Flights from Geneva to Porto
Ave. Duration
2h 16m
When
Every day
Estimated price
$75 - $550
Vueling Airlines
Website
vueling.com
Flights from Milan Malpensa to Porto via Barcelona
Ave. Duration
4h 17m
When
Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday
Estimated price
$100 - $550
Flights from Milan Malpensa to Porto via Paris Orly
Ave. Duration
5h 35m
When
Monday and Friday
Estimated price
$100 - $550
Flights from Milan Linate to Porto via Madrid
Ave. Duration
5h 5m
When
Every day
Estimated price
$170 - $700
Flights from Zurich to Porto via Madrid
Ave. Duration
5h 25m
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$110 - $700
Lufthansa
Website
lufthansa.com
Flights from Milan Malpensa to Porto via Munich
Ave. Duration
5h 5m
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$230 - $700
Flights from Milan Linate to Porto via Frankfurt
Ave. Duration
5h 32m
When
Every day
Estimated price
$270 - $900
Flights from Zurich to Porto via Munich
Ave. Duration
4h 50m
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$210 - $750
Flights from Zurich to Porto via Frankfurt
Ave. Duration
5h 10m
When
Every day
Estimated price
$210 - $750
Flights from Geneva to Porto via Frankfurt
Ave. Duration
4h 55m
When
Every day
Estimated price
$180 - $700
Alitalia
Website
alitalia.com
Flights from Milan Malpensa to Porto
Ave. Duration
2h 45m
When
Every day
Estimated price
$75 - $600
Flights from Milan Linate to Porto via Madrid
Ave. Duration
6h 50m
When
Monday to Saturday
Estimated price
$1,200 - $2,700
Luxair
Website
luxair.lu
Flights from Milan Malpensa to Porto via Luxembourg
Ave. Duration
5h 5m
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$300 - $1,100
Flights from Milan Linate to Porto via Luxembourg
Ave. Duration
4h 50m
When
Monday to Friday
Estimated price
$130 - $650
Air France
Website
airfrance.com
Flights from Milan Malpensa to Porto via Paris CDG
Ave. Duration
5h 15m
When
Tuesday, Thursday and Saturday
Estimated price
$190 - $1,100
Flights from Milan Linate to Porto via Paris CDG
Ave. Duration
6h 35m
When
Tuesday, Thursday and Saturday
Estimated price
$170 - $1,300
Flights from Geneva to Porto via Paris CDG
Ave. Duration
4h 20m
When
Tuesday, Thursday and Saturday
Estimated price
$220 - $750
Air Europa
Website
aireuropa.com
Flights from Zurich to Porto via Madrid
Ave. Duration
5h 5m
When
Every day
Estimated price
$120 - $700
Brussels Airlines
Website
brusselsairlines.com
Flights from Geneva to Porto via Brussels
Ave. Duration
4h 30m
When
Monday, Thursday, Friday and Sunday
Estimated price
$130 - $650
British Airways
Website
britishairways.com
Flights from Geneva to Porto via London Gatwick
Ave. Duration
4h 35m
When
Sunday
Estimated price
$160 - $800
Train operators
Trenitalia Eurocity

The primary train operator in Italy, Trenitalia was created in the year 2000. Trenitalia offers national rail connections in Italy as well as international connections to Austria, France, Germany and Switzerland. The company operates regional and long-distance trains, as well as high-speed trains called Frecce that travel on specialised tracks on speeds of up to 360km/h. Trenitalia tickets are available online, in stations across the country or from many travel agents that offer bookings.

Contact Details
Phone
+39 06 68475475
Website
trenitalia.com
Train from Milano Centrale to Zürich HB
Ave. Duration
4h 3m
Frequency
Hourly
Estimated price
$21 - $90
Website
orario.trenitalia.com
Standard
$21 - $90
First
$55 - $140
Train from Milano Centrale to Geneve
Ave. Duration
3h 56m
Frequency
Every 2 hours
Estimated price
$30 - $110
Website
orario.trenitalia.com
Standard
$30 - $110
First
$80 - $170
Train from Milano Centrale to Sion
Ave. Duration
2h 21m
Frequency
Every 2 hours
Estimated price
$45 - $60
Website
orario.trenitalia.com
Standard
$45 - $60
First
$75 - $95
inOui TGV
Phone
0033 892 353535
Website
en.oui.sncf
Train from Milano Porta Garibaldi to Chambery-Challes-E
Ave. Duration
4h 5m
Frequency
3 times a day
Estimated price
$65 - $80
Website
en.oui.sncf
2nd Class
$65 - $80
1st Class
$95 - $130
Train from Valence TGV to Barcelona Sants
Ave. Duration
4h 13m
Frequency
4 times a day
Estimated price
$100 - $120
Website
en.oui.sncf
2nd Class
$100 - $120
1st Class
$140 - $210
SNCF

Loosely translated as the French National Railway Corporation, the SNCF is France’s state-owned railway company. It covers the country’s extensive rail network, as well as the TGV and Thalys, France’s two high-speed railway networks. With over 14,000 trains operating daily, it is a fast and efficient way of travelling around the country. The railway network consists of about 32,000km in total, of which 1800km are high-speed lines and 14,500km are electrified.

Rome2rio's guide to SNCF
Contact Details
Phone
+33 9 70 60 99 70
Website
sncf.com
Train from Chambery-Challes-E to Valence TGV
Ave. Duration
1h 55m
Frequency
Hourly
Estimated price
$27 - $40
Website
en.oui.sncf
2nd Class
$27 - $40
1st Class
$35 - $60
Train from Valence TGV to Barcelona Sants
Ave. Duration
4h 28m
Frequency
Once daily
Estimated price
$70 - $110
Website
en.oui.sncf
Spanish Railways (RENFE)

Based in Madrid, Renfe is a state-owned train operator, that connects cities across Spain and neighbouring countries including Portugal, France, Germany, Switzerland, and the Netherlands. Renfe’s extensive network means most destinations offer multiple trains a day, with the most popular routes normally offering a train each hour. Locally known as AVE, the high-speed trains can reach speeds of up to 350km/h, making travel between major cities very efficient. Comfort is key in a Renfe train, with seats with footrests in all three classes of travel: Standard, Club and First. Each seat has an individual light, a pull-down table and an electrical outlet for in Club and First classes. There is free WiFi for first class passengers and for those with a + Renfe card.

Rome2rio's guide to Spanish Railways (RENFE)
Contact Details
Phone
902 320 320
Website
renfe.com
Train from Barcelona Sants to Vigo-Guixar
Ave. Duration
13h 36m
Frequency
4 times a week
Estimated price
$150 - $180
Website
renfe.com
Train from Vigo-Guixar to Porto(Campanha)
Ave. Duration
2h 20m
Frequency
3 times a day
Estimated price
$14 - $27
Website
renfe.com
Bus operators
FlixBus

One of Europe’s leading bus companies, Flixbus serves over 1400 destinations, in 26 countries including Germany, France, Italy, Austria, the Netherlands, Croatia, Spain, and across Scandinavia and central and eastern Europe. Founded in 2012, Flixbus’ extensive network connects cities with approximately 200,000 trips, with buses often departing every 30 minutes. One of the most affordable ways to get around Europe (and expanding soon into the US), a Flixbus journey is cost-effective, well-connected, comfortable and safe.

Rome2rio's guide to FlixBus
Contact Details
Phone
+49 1807 123 99 123
Email
info@flixbus.de
Website
flixbus.de
Bus from Milan, Milan to Grenoble
Ave. Duration
5h 35m
Frequency
Twice daily
Estimated price
$21 - $35
Website
flixbus.co.uk
Bus from Grenoble to Porto, Porto
Ave. Duration
24h 50m
Frequency
3 times a week
Estimated price
$95 - $170
Website
flixbus.co.uk
Eurolines CH
Phone
0041 (0) 844 257 224
Website
eurolines.ch
Bus from Sion to Porto
Ave. Duration
29h 58m
Frequency
3 times a week
Estimated price
$130 - $160
Book at
eurolines.ch
Eurolines FR
Phone
+ 33 1 41 86 24 21
Website
eurolines.fr
Bus from Milan to Nice
Ave. Duration
4h 47m
Frequency
Once daily
Estimated price
$30 - $85
Schedules at
eurolines.fr
Bus from Nice to Porto
Ave. Duration
28h 30m
Frequency
3 times a week
Estimated price
$120 - $230
Schedules at
eurolines.fr

Want to know more about travelling around Portugal

Rome2rio's Travel Guide series provide vital information for the global traveller. Filled with useful and timely travel information, the guides answer all the hard questions - such as 'How do I buy a ticket?', 'Should I book online before I travel? ', 'How much should I expect to pay?', 'Do the trains and buses have Wifi?' - to help you get the most out of your next trip.

More Questions & Answers

The quickest flight from Milan Malpensa Airport to Porto Airport is the direct flight which takes 2h 35m.

Search flights

Milan to Porto bus services, operated by FlixBus, arrive at Porto, Porto station.

More details

Porto is 1h behind Milan. It is currently 6:51 PM in Milan and 5:51 PM in Porto.

Milan to Porto train services, operated by Spanish Railways (RENFE), arrive at Porto(Campanha) station.

More details

Yes, the driving distance between Milan to Porto is 1986 km. It takes approximately 18h 47m to drive from Milan to Porto.

Get driving directions

Lufthansa, Air France, Ryanair and four other airlines offer flights from Milan Malpensa Airport to Porto Airport.

Search flights

Book your Milan to Porto train tickets online with Loco2, Loco2 and three other operators.

Search and book

There are 3772+ hotels available in Porto. Prices start at $46 USD per night.

More details

The best way to get from Milan to Milan Malpensa Airport is to train which takes 37m and costs 10€ - 14€.

More details