There are 10 ways to get from Porto to Milan by plane, bus, train, car, or train (Renfe)
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly to Milan Linate Airport
best- Fly from Francisco De Sá Carneiro Airport (OPO) to Milan Linate Airport (LIN)OPO - LIN
5h 10m€38–225Bus, train via Madrid
- Take the bus from Porto to Vigo
- Take the train from Vigo Urzaiz to Madrid ChamartínAve
- Take the train from Madrid-Puerta de Atocha-Almudena Grandes to Avignon Tgv
- Take the train from Avignon Tgv to Lyon Part DieuTgv
- Take the train from Lyon Part Dieu to Milano CentraleFr
25h 11m€196–487Bus via Lyon
- Take the bus from Porto - TIC Campanhã to Lyon - Perrache Bus StationBlaBlaCar Bus
- Take the bus from Lyon to Milano, Autostazione LampugnanoN406 / ...
28h 14m€72–283Drive 1,871.2 km
- Drive from Porto to Milan1,871.2 km
19h 39m€289–417Fly to Milano Malpensa Airport, train
- Fly from Francisco De Sá Carneiro Airport (OPO) to Milano Malpensa Airport (MXP)OPO - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
5h 53m€41–167Fly to Il Caravaggio International Airport
- Fly from Francisco De Sá Carneiro Airport (OPO) to Il Caravaggio International Airport (BGY)OPO - BGY
5h 54m€72–317Fly to Turin Caselle Airport, train
- Fly from Francisco De Sá Carneiro Airport (OPO) to Turin Caselle Airport (TRN)OPO - TRN
- Take the train from Torino Porta Susa to Milano Centrale
6h 45m€74–242Train
- Take the train from Porto Campanha to Redondela De GaliciaIc
- Take the train from Redondela De Galicia to Barcelona-SantsAlv
- Take the train from Barcelona-Sants to Lyon Part Dieu
- Take the train from Lyon Part Dieu to Milano CentraleFr
28h 45m€214–374Bus, train
- Take the bus from Porto - Hospital de São João to Chambéry - Rue Dr VernierLinha Lyon Express
- Take the train from Chambery Challes Les Eaux to Milano CentraleFr
32h 18m€131–237Bus
- Take the bus from Porto - Terminal Intermodal de Campanhã to Valladolid
- Take the bus from Valladolid Central Bus Station to Milano, Autostazione LampugnanoUnion Ivkoni - Unibus 3417 / ...
35h 5m€132–209
Porto to Milan by bus and train
Questions & Answers
The cheapest way to get from Porto to Milan is to fly and train which costs €40 - €170 and takes 5h 53m.
The fastest way to get from Porto to Milan is to fly which takes 5h 10m and costs €35 - €230.
No, there is no direct bus from Porto to Milan. However, there are services departing from Porto - TIC Campanhã and arriving at Milano, Autostazione Lampugnano via Lyon. The journey, including transfers, takes approximately 28h 14m.
No, there is no direct train from Porto to Milan. However, there are services departing from Porto Campanha and arriving at Milano Centrale via Redondela De Galicia, Barcelona-Sants and Lyon Part Dieu. The journey, including transfers, takes approximately 28h 45m.
The distance between Porto and Milan is 1542 km. The road distance is 1871.2 km.
The best way to get from Porto to Milan without a car is to bus and train via Madrid which takes 25h 11m and costs €190 - €490.
It takes approximately 5h 10m to get from Porto to Milan, including transfers.
Porto to Milan bus services, operated by BlaBlaCar Bus, depart from Porto - TIC Campanhã station.
Porto to Milan train services, operated by Renfe Viajeros, depart from Porto Campanha station.
The best way to get from Porto to Milan is to fly which takes 5h 10m and costs €35 - €230. Alternatively, you can bus via Lyon, which costs €70 - €290 and takes 28h 14m, you could also train, which costs €210 - €380 and takes 28h 45m.
What companies run services between Porto, Portugal and Milan, Italy?
easyJet and Iberia fly from Francisco De Sá Carneiro Airport (OPO) to Milan Linate Airport (LIN) twice daily. Alternatively, you can take a bus from Porto - TIC Campanhã to Milano, Autostazione Lampugnano via Lyon - Perrache Bus Station and Lyon in around 28h 14m.
- Website
- easyjet.com
Flights from Francisco De Sá Carneiro Airport to Milan Linate Airport
- Ave. Duration
- 2h 30m
- When
- Monday, Thursday, Friday, and Sunday
- Estimated price
- €30–200
Flights from Francisco De Sá Carneiro Airport to Milan Linate Airport via Paris Orly
- Ave. Duration
- 4h 55m
- When
- Saturday
- Estimated price
- €30–200
Flights from Francisco De Sá Carneiro Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 27m
- When
- Tuesday, Saturday, and Sunday
- Estimated price
- €28–90
Flights from Francisco De Sá Carneiro Airport to Milano Malpensa Airport via Bordeaux
- Ave. Duration
- 4h 5m
- When
- Monday
- Estimated price
- €28–90
Flights from Francisco De Sá Carneiro Airport to Milano Malpensa Airport via Nantes
- Ave. Duration
- 5h 40m
- When
- Friday
- Estimated price
- €28–90
- Website
- ryanair.com
Flights from Francisco De Sá Carneiro Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 40m
- When
- Tuesday, Thursday, Saturday, and Sunday
- Estimated price
- €50–160
Flights from Francisco De Sá Carneiro Airport to Il Caravaggio International Airport
- Ave. Duration
- 2h 40m
- When
- Every day
- Estimated price
- €65–200
Flights from Francisco De Sá Carneiro Airport to Turin Caselle Airport
- Ave. Duration
- 2h 25m
- When
- Tuesday, Friday, and Sunday
- Estimated price
- €60–180
Flights from Francisco De Sá Carneiro Airport to Turin Caselle Airport via Valencia
- Ave. Duration
- 5h 25m
- When
- Monday, Thursday, Friday, and Sunday
- Estimated price
- €60–180
- Website
- iberia.com
Flights from Francisco De Sá Carneiro Airport to Milan Linate Airport via Madrid
- Ave. Duration
- 5h
- When
- Every day
- Estimated price
- €85–210
- Website
- airfrance.com
Flights from Francisco De Sá Carneiro Airport to Turin Caselle Airport via Paris Charles de Gaulle
- Ave. Duration
- 5h 25m
- When
- Every day
- Estimated price
- €65–330
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Vigo Urzaiz to Madrid Chamartín
- Ave. Duration
- 3h 55m
- Frequency
- 3 times a day
- Estimated price
- €40–130
- Website
- https://www.renfe.com/es/en
- Phone
- +34 91 232 03 20
- Website
- renfe.com
Train from Vigo Urzaiz to Madrid Chamartín
- Ave. Duration
- 4h 24m
- Frequency
- Once daily
- Estimated price
- €35–100
- Website
- https://www.renfe.com/es/en
Train from Madrid-Puerta de Atocha-Almudena Grandes to Avignon Tgv
- Ave. Duration
- 7h 37m
- Frequency
- Once daily
- Estimated price
- €85–120
- Website
- https://www.renfe.com/es/en
Train from Porto Campanha to Redondela De Galicia
- Ave. Duration
- 2h 15m
- Frequency
- Twice daily
- Estimated price
- €14–19
- Website
- https://www.renfe.com/es/en
Train from Redondela De Galicia to Barcelona-Sants
- Ave. Duration
- 13h 40m
- Frequency
- 6 times a week
- Estimated price
- €100–140
- Website
- https://www.renfe.com/es/en
Train from Barcelona-Sants to Lyon Part Dieu
- Ave. Duration
- 5h 6m
- Frequency
- Once daily
- Estimated price
- €50–75
- Website
- https://www.renfe.com/es/en
- Phone
- +33 1 84 94 36 35
- Website
- sncf-connect.com
Train from Avignon Tgv to Lyon Part Dieu
- Ave. Duration
- 1h 5m
- Frequency
- Every 2 hours
- Estimated price
- €30–65
- Website
- https://www.sncf-connect.com/en-en
- Phone
- +33 1 84 94 36 35
- Website
- track.effiliation.com
Train from Avignon Tgv to Lyon Part Dieu
- Ave. Duration
- 1h 5m
- Frequency
- Once daily
- Estimated price
- €44
- Website
- https://track.effiliation.com/servlet/effi.redir?id_compteur=23007591&url=https%3A%2F%2Fwww.sncf-connect.com%2Fen-en%2F
- Phone
- +39.06.5210550
- Website
- trenitalia.com
Train from Avignon Tgv to Lyon Part Dieu
- Ave. Duration
- 1h 8m
- Frequency
- Once daily
- Estimated price
- €17–70
- Website
- https://www.trenitalia.com/en.html
Train from Lyon Part Dieu to Milano Centrale
- Ave. Duration
- 4h 44m
- Frequency
- Twice daily
- Estimated price
- €50–140
- Website
- https://www.trenitalia.com/en.html
Train from Torino Porta Susa to Milano Centrale
- Ave. Duration
- 1h 40m
- Frequency
- Hourly
- Estimated price
- €9–14
- Website
- https://www.trenitalia.com/en.html
Train from Chambery Challes Les Eaux to Milano Centrale
- Ave. Duration
- 3h 21m
- Frequency
- Twice daily
- Estimated price
- €55–140
- Website
- https://www.trenitalia.com/en.html
- Phone
- +33 2 22 55 00 10
- nomad-car@laregionnormandie.fr
- Website
- nomad.normandie.fr
Train from Avignon Tgv to Lyon Part Dieu
- Ave. Duration
- 1h 14m
- Frequency
- 5 times a week
- Schedules at
- nomad.normandie.fr
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 42 min
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
- Phone
- +39 02-72494949
- Website
- malpensaexpress.it
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 42 min
- Frequency
- Hourly
- Estimated price
- €15
- Website
- https://www.malpensaexpress.it/en/
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Torino Porta Susa to Milano Centrale
- Ave. Duration
- 50 min
- Frequency
- Hourly
- Estimated price
- €19–45
- Schedules at
- trenitalia.com
- Phone
- +39 06 8937 1892
- Website
- italotreno.it
Train from Torino Porta Susa to Milano Centrale
- Ave. Duration
- 50 min
- Frequency
- Every 2 hours
- Estimated price
- €16–45
- Website
- https://www.italotreno.it/en
- Phone
- +49 30 300 137 300
- service@flixbus.com
- Website
- flixbus.fr
Bus from Porto to Vigo
- Ave. Duration
- 2h 50m
- Frequency
- Every 4 hours
- Estimated price
- €9–24
- Website
- https://www.flixbus.co.uk
Bus from Porto - TIC Campanhã to Lyon - Perrache Bus Station
- Ave. Duration
- 25h
- Frequency
- 4 times a week
- Estimated price
- €70–210
- Website
- https://www.flixbus.co.uk
Bus from Lyon to Milano, Autostazione Lampugnano
- Ave. Duration
- 6h 5m
- Frequency
- 4 times a day
- Estimated price
- €23–60
- Website
- https://www.flixbus.co.uk
- Phone
- +3-389-268-0068
- Website
- blablacar.co.uk
Bus from Porto to Vigo
- Ave. Duration
- 2h 40m
- Frequency
- 3 times a day
- Estimated price
- €7–16
- Website
- https://www.blablacar.co.uk/bus
Bus from Porto - TIC Campanhã to Lyon - Perrache Bus Station
- Ave. Duration
- 21h 10m
- Frequency
- Once daily
- Estimated price
- €55–160
- Website
- https://www.blablacar.co.uk/bus
Bus from Lyon to Milano, Autostazione Lampugnano
- Ave. Duration
- 6h 30m
- Frequency
- 5 times a day
- Estimated price
- €17–60
- Website
- https://www.blablacar.co.uk/bus
- Phone
- +39 06 88 93 82 32
- Website
- itabus.it
Bus from Lyon to Milano, Autostazione Lampugnano
- Ave. Duration
- 6h 50m
- Frequency
- 3 times a day
- Estimated price
- €16–80
- Website
- https://www.itabus.it/en/home
- Phone
- 07001 8282
- booking@union-ivkoni.com
- Website
- union-ivkoni.com
Bus from Lyon to Milano, Autostazione Lampugnano
- Ave. Duration
- 6h 30m
- Frequency
- 3 times a week
- Estimated price
- €17–26
- Website
- https://union-ivkoni.com/en
Bus from Valladolid Central Bus Station to Milano, Autostazione Lampugnano
- Ave. Duration
- 27h 45m
- Frequency
- Twice a week
- Estimated price
- €75–110
- Website
- https://union-ivkoni.com/en
- Phone
- (+351) 258 454 303
- info@barquense.com
- Website
- barquense.pt
Bus from Porto - Hospital de São João to Chambéry - Rue Dr Vernier
- Ave. Duration
- 26h 26m
- Frequency
- Once a week
- Estimated price
- €75–95
- Schedules at
- barquense.pt
- Book at
- barquense.pt
- Phone
- +351 21 75 24 524
- Website
- rede-expressos.pt
Bus from Porto - Terminal Intermodal de Campanhã to Valladolid
- Ave. Duration
- 6h 20m
- Frequency
- 3 times a week
- Estimated price
- €60–100
- Website
- https://rede-expressos.pt/en
- Phone
- +376 806 555
- cooperativa@interurbana.ad
- Website
- interurbana.ad
Bus from Porto - Terminal Intermodal de Campanhã to Valladolid
- Ave. Duration
- 6h 45m
- Frequency
- Twice a week
- Website
- https://www.interurbana.ad/idioma-en
- Phone
- +34 (0) 902 23 95 79
- info@rutasvigo.com
- Website
- autocareslazara.com
Bus from Porto - Terminal Intermodal de Campanhã to Valladolid
- Ave. Duration
- 7h
- Frequency
- Once a week
- Estimated price
- €56–62
- Schedules at
- autocareslazara.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.
Related travel guides
Italy Travel Guides
Read the travel guide
Getting to Milan from the airport
Read the travel guide
5 delightfully under-the-radar French towns you need to visit
Read the travel guide
More Questions & Answers
Porto to Milan bus services, operated by BlaBlaCar Bus, arrive at Lyon - Perrache Bus Station.
Milan is 1h ahead of Porto. It is currently 12:53 PM in Porto and 1:53 PM in Milan.
Porto to Milan train services, operated by Renfe Viajeros, arrive at Redondela De Galicia station.
Yes, the driving distance between Porto to Milan is 1871 km. It takes approximately 19h 39m to drive from Porto to Milan.
Book your Porto to Milan bus tickets online with Omio and FlixBus.
There are 13461+ hotels available in Milan.




































































