There are 8 ways to get from Porto to Milan 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 to Milan Malpensa  •  5h 47m

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

47€ - 668€

Cheapest option

Fly to Milan Bergamo  •  6h 5m

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

36€ - 272€

6 alternative options

Fly to Milan Linate  •  7h 13m

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

252€ - 394€

Train  •  27h 10m

  1. Take the train from Porto - Campanha to Vigo Guixar Ic
  2. Take the train from Vigo Guixar to Madrid-Puerta De Atocha Alv
  3. Take the train from Madrid-Puerta De Atocha to Avignon Tgv Ave
  4. Take the train from Avignon Tgv to Lyon Part Dieu Tgv / ...
  5. Take the train from Lyon Part Dieu to Milano P.Garibaldi Tgv

244€ - 622€

Bus, train via Toulouse  •  27h 58m

  1. Take the bus from Porto, Porto to Toulouse 786
  2. Take the train from Toulouse Matabiau to Valence Tgv Rhone-Alpes Sud Tgv
  3. Take the train from Valence Tgv Rhone-Alpes Sud to Grenoble Ter
  4. Take the train from Grenoble to Milano P.Garibaldi Tgv

205€ - 277€

Bus, train  •  33h 50m

  1. Take the bus from Porto to Riddes
  2. Take the train from Riddes to Brig 130
  3. Take the train from Domodossola to Milano Centrale

131€ - 231€

Bus  •  34h 45m

  1. Take the bus from Porto to Viseu RedeExpressos / ...
  2. Take the bus from Viseu to Milan - San Donato Lisbon - Oriente > Fatima > Leiria > Pombal > Coimbra > Viseu > Celorico da Beira > Vilar Formoso > Fuentes de Onoro - Portugal > Fuentes de Onoro - Espagne > Ciudad Rodrigo > Salamanca > Valladolid > Bilbao > Conex San Sebastian > San Sebastián > Biriatou - Spain > Biriatou - France > Bayonne > Pau - University > Tarbes > Toulouse > Carcassonne > Narbonne - Croix Sud > Montpellier > Nîmes > Avignon - Le Pontet > Marseille - St-Charles Bus station > Aix-en-Provence > Cannes > Nice - Airport > Tunnel de la Giraude - France > Tunnel de la Giraude - Italie > Genoa - Via Fanti d'Italia > Milan - San Donato > Milan

161€ - 238€

Drive  •  18h 47m

  1. Drive from Porto to Milan 1960.5 km

260€ - 390€

Coronavirus (COVID-19) in Italy

There is widespread community transmission globally.
Some travel restrictions are being lifted in Italy. For the latest travel status, please check the official page for Italy.

For travel planning advice, please refer to our Rome2rio Coronavirus information page .
For the latest travel status, we recommend checking the official page for Italy.

Coronavirus (COVID-19) Travel Advice

Some border closures are in place for Italy due to Coronavirus (COVID-19). Most travel to this country is restricted.

Source Type: Government | Last updated: 4/18/2020

Some domestic travel restrictions began to ease in Italy from 5/18/2020.

Source Type: Government | Last updated: 5/18/2020

International flights leaving Portugal are suspended as part of the response to Coronavirus (COVID-19). Restrictions may also be in place for other modes of transport.

Source Type: Government | Last updated: 5/18/2020

Data sourced from: CDC, ACAPS, OXFORD

Questions & Answers

The cheapest way to get from Porto to Milan is to fly which costs 35€ - 280€ and takes 6h 5m.

More details

The quickest way to get from Porto to Milan is to fly which costs 45€ - 700€ and takes 5h 47m.

More details

No, there is no direct bus from Porto to Milan. However, there are services departing from Porto and arriving at cavallotti via Viseu and san donato m3. The journey, including transfers, takes approximately 34h 45m.

More details

No, there is no direct train from Porto to Milan. However, there are services departing from Porto - Campanha and arriving at Milano P.Garibaldi via Vigo Guixar, Madrid-Puerta De Atocha, Avignon Tgv and Lyon Part Dieu. The journey, including transfers, takes approximately 27h 10m.

More details

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

Get driving directions

The best way to get from Porto to Milan without a car is to train which takes 27h 10m and costs 240€ - 650€.

More details

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

More details

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

More details

Porto to Milan train services, operated by Renfe Viajeros, depart from Porto - Campanha station.

More details

The best way to get from Porto to Milan is to fly which takes 5h 47m and costs 45€ - 700€. Alternatively, you can train, which costs 240€ - 650€ and takes 27h 10m, you could also bus, which costs 160€ - 240€ and takes 34h 45m.

Mode details

Map of how to get from Porto to Milan.
Launch map view
  • Distance: 1514.4 km
  • Duration: 5h 47m

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

Ryanair, TAP Portugal and eight other airlines fly from Porto to Milan hourly. Alternatively, you can take a train from Porto to Milan via Vigo Guixar, Madrid-Puerta De Atocha, Avignon Tgv, and Lyon Part Dieu in around 27h 10m.

Airlines
Ryanair
Website
ryanair.com
Flights from Porto to Milan Malpensa
Ave. Duration
2h 25m
When
Tuesday, Thursday, Saturday and Sunday
Estimated price
30€ - 180€
Flights from Porto to Milan Bergamo
Ave. Duration
2h 32m
When
Every day
Estimated price
35€ - 260€
Flights from Porto to Milan Bergamo via Madrid
Ave. Duration
4h 50m
When
Every day
Estimated price
35€ - 260€
Flights from Porto to Milan Bergamo via Barcelona
Ave. Duration
5h 20m
When
Every day
Estimated price
35€ - 260€
Flights from Porto to Milan Bergamo via Charleroi
Ave. Duration
4h 40m
When
Every day
Estimated price
35€ - 260€
Flights from Porto to Milan Bergamo via Sevilla
Ave. Duration
5h 10m
When
Monday, Friday and Sunday
Estimated price
35€ - 260€
Flights from Porto to Milan Bergamo via London Stansted
Ave. Duration
5h 37m
When
Monday, Friday and Saturday
Estimated price
35€ - 260€
Flights from Porto to Milan Bergamo via Budapest
Ave. Duration
5h 40m
When
Tuesday
Estimated price
35€ - 260€
TAP Portugal
Website
flytap.com
Flights from Porto to Milan Malpensa
Ave. Duration
2h 30m
When
Every day
Estimated price
40€ - 550€
Flights from Porto to Milan Malpensa via Lisbon
Ave. Duration
5h 1m
When
Every day
Estimated price
40€ - 550€
Lufthansa
Website
lufthansa.com
Flights from Porto to Milan Malpensa via Frankfurt
Ave. Duration
5h 5m
When
Every day
Estimated price
140€ - 600€
Flights from Porto to Milan Linate via Frankfurt
Ave. Duration
5h 10m
When
Every day
Estimated price
100€ - 480€
Iberia
Website
iberia.com
Flights from Porto to Milan Malpensa via Madrid
Ave. Duration
4h 55m
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
95€ - 350€
Flights from Porto to Milan Linate via Madrid
Ave. Duration
5h 32m
When
Every day
Estimated price
60€ - 270€
easyJet
Website
easyjet.com
Flights from Porto to Milan Malpensa via Paris CDG
Ave. Duration
5h 20m
When
Thursday
Estimated price
70€ - 160€
Flights from Porto to Milan Linate via London Gatwick
Ave. Duration
6h 22m
When
Wednesday, Friday, Saturday and Sunday
Estimated price
75€ - 290€
Vueling Airlines
Website
vueling.com
Flights from Porto to Milan Malpensa via Barcelona
Ave. Duration
4h 25m
When
Monday
Estimated price
60€ - 250€
Flights from Porto to Milan Malpensa via Paris Orly
Ave. Duration
5h
When
Every day
Estimated price
60€ - 250€
Luxair
Website
luxair.lu
Flights from Porto to Milan Malpensa via Luxembourg
Ave. Duration
4h 40m
When
Monday to Friday
Estimated price
160€ - 950€
Flights from Porto to Milan Linate via Luxembourg
Ave. Duration
8h 25m
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
45€ - 190€
Swiss
Website
swiss.com
Flights from Porto to Milan Malpensa via Zurich
Ave. Duration
4h 25m
When
Wednesday and Saturday
Estimated price
170€ - 500€
Air Europa
Website
aireuropa.com
Flights from Porto to Milan Malpensa via Madrid
Ave. Duration
4h 45m
When
Every day
Estimated price
45€ - 1000€
Brussels Airlines
Website
brusselsairlines.com
Flights from Porto to Milan Linate via Brussels
Ave. Duration
5h 15m
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
70€ - 280€
KLM
Website
klm.com
Flights from Porto to Milan Linate via Amsterdam Schiphol
Ave. Duration
6h 15m
When
Saturday and Sunday
Estimated price
100€ - 380€
Train operators
Renfe Viajeros

Spain's excellent and extensive rail system connects cities across Spain and into neighbouring countries. Renfe's high-speed AVE trains can reach speeds of up to 350km/h, making travel between major cities very efficient. All medium- and long-distance trains require a seat reservation; ticket sales for these trains usually open 30-60 days before travel. Most Renfe trains have two classes: Turista (2nd class) and Preferente (1st class), although some AVE trains offer Turista Plus. There is free WiFi for Preferente passengers and for those with a +Renfe loyalty card.

Rome2rio's guide to Renfe Viajeros
Contact Details
Phone
902 320 320
Website
renfe.com
Train from Porto - Campanha to Vigo Guixar
Ave. Duration
2h 22m
Frequency
Twice daily
Estimated price
14€ - 18€
Website
Renfe Viajeros
Train from Vigo Guixar to Madrid-Puerta De Atocha
Ave. Duration
6h 59m
Frequency
Once a week
Estimated price
35€ - 50€
Website
Renfe Viajeros
Renfe SNCF
Website
renfe-sncf.com
Train from Madrid-Puerta De Atocha to Avignon Tgv
Ave. Duration
7h 27m
Frequency
Once daily
Estimated price
80€ - 120€
Website
renfe-sncf.com
TGV inOui

France’s high-speed TGV train network runs at speeds of up to 320km/h connecting major cities across France and into neighbouring countries. All TGV tickets include a seat reservation; seating is 1+2 in 1st class, 2+2 in 2nd class. Popular routes include Paris to Marseille and Paris to Strasbourg. Most TGVs have a cafe area, power points at each seat and WiFi.

Contact Details
Phone
0033 892 353535
Website
en.oui.sncf
Train from Avignon Tgv to Lyon Part Dieu
Ave. Duration
1h 6m
Frequency
Every 2 hours
Estimated price
45€ - 55€
Website
Oui.SNCF
2nd Class
45€ - 55€
1st Class
45€ - 55€
Train from Lyon Part Dieu to Milano P.Garibaldi
Ave. Duration
5h 19m
Frequency
6 times a week
Estimated price
70€ - 95€
Website
Oui.SNCF
2nd Class
70€ - 85€
1st Class
80€ - 95€
Train from Toulouse Matabiau to Valence Tgv Rhone-Alpes Sud
Ave. Duration
3h 26m
Frequency
3 times a day
Estimated price
75€ - 100€
Website
Oui.SNCF
2nd Class
75€ - 90€
1st Class
80€ - 100€
Train from Grenoble to Milano P.Garibaldi
Ave. Duration
4h 29m
Frequency
Twice a week
Estimated price
65€ - 85€
Website
Oui.SNCF
2nd Class
65€ - 80€
1st Class
70€ - 85€
SNCF

France’s state-owned railway company is a fast and efficient way of travelling around the country, with over 14,000 trains operating daily. SNCF runs the country’s extensive rail network, including the high-speed TGV network, regional TER trains and local Intercités. It also operates international routes including Eurostar and Thalys, as well as the low-cost, long-distance Ouigo services that run on limited routes across France. Book up to 3 months in advance for the cheapest fares. 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 Valence Tgv Rhone-Alpes Sud to Grenoble
Ave. Duration
1h 1m
Frequency
Hourly
Estimated price
12€ - 28€
Website
en.oui.sncf
2nd Class
12€ - 18€
Rail 1st Class
19€ - 28€
Swiss Railways (SBB/CFF/FFS)

The national railway company of Switzerland, Swiss Railways operates trains throughout the country and adjacent European nations including Germany, France, Italy and Austria. Tickets are sold in two classes - First and Second - with most long-distance trains offering a bistro car serving beverages and snacks. Individual tickets can be bought easily at stands, while a variety of travel passes are on offer to suit different travel needs.

Contact Details
Phone
+41 51 220 11 11
Website
sbb.ch
Train from Valence TGV Rhône-Alpes Sud to Grenoble
Ave. Duration
1h 5m
Frequency
Hourly
Estimated price
30€ - 55€
Website
Swiss Railways (SBB/CFF/FFS)
RegionalAlps
Phone
+41 27 720 47 47
Email
info@regionalps.ch
Website
regionalps.ch
Train from Riddes to Brig
Ave. Duration
56 min
Frequency
Hourly
Estimated price
20€ - 45€
Website
RegionalAlps
Schedules at
Swiss Railways
2nd Class Ticket
20€ - 24€
1st Class Ticket
36€ - 41€
Trenord

Trenord operates regional and suburban lines throughout Italy’s Lombardy region, including the Malapensa Express from Milan’s Malapensa Airport and local lines around Lake Como and the Italian Lakes. Trenord train tickets can be purchased from machines at any train station and don’t need to be booked in advance.

Contact Details
Phone
+39 02 7249 4494
Email
my-link@trenord.it
Website
trenord.it
Train from Domodossola to Milano Centrale
Ave. Duration
1h 41m
Frequency
Hourly
Estimated price
9€ - 11€
Website
Trenord
Bus operators
FlixBus

One of Europe’s leading bus companies, Flixbus serves 2000+ destinations in 29 countries, including Germany, France, Italy, Austria, the Netherlands and Croatia and into Scandinavia and eastern Europe, as well as some US cities. Coaches have toilets, free WiFi and power outlets, plus snacks and drinks for purchase on board. Flixbus is a good choice for the budget-conscious traveller; purchase tickets in advance for the cheapest fares (note: there is no option to reserve a seat in advance).

Rome2rio's guide to FlixBus
Contact Details
Phone
+49 1807 123 99 123
Email
info@flixbus.de
Website
flixbus.de
Bus from Porto, Porto to Toulouse
Ave. Duration
16h 40m
Frequency
Twice daily
Estimated price
50€ - 65€
Website
flixbus.co.uk
Eurolines CH
Phone
0041 (0) 844 257 224
Website
eurolines.ch
Bus from Porto to Riddes
Ave. Duration
29h 42m
Frequency
3 times a week
Estimated price
85€ - 140€
Book at
eurolines.ch
Rede Expressos

Rede Nacional de Expressos is a cheap and convenient way to get around the country. In business since 1995, Portugal’s biggest bus operator services villages and cities across the country. Tickets can be purchased up to 30 days before the date of travel, with discounted fares available via their free RFLEX Card. Most coaches have WiFi and power sockets.

Contact Details
Phone
707 22 33 44
Email
cliente@rne.pt
Website
rede-expressos.pt
Bus from Porto to Viseu
Ave. Duration
1h 45m
Frequency
Every 4 hours
Estimated price
10€ - 13€
Schedules at
rede-expressos.pt
Citi Express
Email
info@citiexpress.eu
Website
rede-expressos.pt
Bus from Porto to Viseu
Ave. Duration
1h 45m
Frequency
5 times a day
Estimated price
9€ - 11€
Website
Citi Express
ALSA

A Spanish subsidiary of National Express, ALSA provides bus and coach services across Spain and neighbouring countries including Portugal, France, Germany, the Netherlands, Italy, Poland and Malta. Founded in 1923, ALSA values service and the customer experience. Buses are equipped with communal TV screens showing movies, individual behind-seat screens, ALSA radio, app for books and music, and free WiFi. ALSA services are accessible to people with disabilities, and guide dogs are welcome on all journeys. There are three types of tickets on offer (Frequent Traveller Pass, Share Pass and ALSA Pass), along with discounts for senior citizens, students and children.

Contact Details
Phone
+34 902 42 22 42
Website
alsa.es
Bus from Porto Campo 24 Agosto to Viseu
Ave. Duration
2h 15m
Frequency
3 times a week
Estimated price
11€ - 17€
Website
alsa.com
Bus from Viseu to Milan - San Donato
Ave. Duration
31h 10m
Frequency
3 times a week
Estimated price
150€ - 220€
Website
alsa.com

Want to know more about travelling around Italy

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 Porto Airport to Milan Malpensa Airport is the direct flight which takes 2h 25m.

Search flights

Porto to Milan bus services, operated by ALSA, arrive at Milan - San Donato station.

More details

Milan is 1h ahead of Porto. It is currently 2:24 AM in Porto and 3:24 AM in Milan.

Porto to Milan train services, operated by TGV inOui, arrive at Milano P.Garibaldi station.

More details

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

Get driving directions

Ryanair, Swiss, Luxair and six other airlines offer flights from Porto Airport to Milan Malpensa Airport.

Search flights

There are 4971+ hotels available in Milan. Prices start at 87€ per night.

More details

The best way to get from Porto to Porto Airport is to subway which takes 27 min and costs 1€ - 2€.

More details