• Our partners include:

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

There are 11 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  •  5 h 54 min

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

$48 - $248

Cheapest option

Fly to Milan Bergamo  •  6 h 12 min

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

$36 - $284

9 alternative options

Fly to Milan Linate  •  7 h 16 min

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

$87 - $445

Fly to Lugano, train  •  10 h 10 min

  1. Fly from Porto (OPO) to Lugano (LUG) OPO - LUG
  2. Take the train from Lugano to Milano Centrale

$142 - $529

Fly to Zurich, train  •  9 h 16 min

  1. Fly from Porto (OPO) to Zurich (ZRH) OPO - ZRH
  2. Take the train from Zuerich Hb to Milano Centrale

$111 - $326

Train via Madrid-Puerta de Atocha  •  27 h 13 min

  1. Take the train from Porto(Campanha) to Vigo-Guixar Ic
  2. Take the train from Vigo-Guixar to Madrid-Puerta de Atocha A
  3. Take the train from Madrid-Puerta de Atocha to Avignon TGV Ave
  4. Take the train from Avignon TGV to Genève Tgv
  5. Take the train from Geneve to Milano Centrale Ec

$365 - $521

Train  •  29 h 44 min

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

$327 - $446

Bus FlixBus  •  31 h 42 min

  1. Take the bus from Porto, Porto to Chambéry, Chambéry K783
  2. Take the bus from Chambéry to Milan, Milan 729 / ...

$116 - $206

Bus, train  •  33 h 20 min

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

$156 - $225

Bus Eurolines FR  •  34 h 34 min

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

$155 - $316

Drive  •  18 h 47 min

  1. Drive from Porto to Milan 1242.3 miles

$290 - $440

Questions & Answers

The cheapest way to get from Porto to Milan is to fly which costs 30€ - 250€ and takes 6 h 12 min.

More details

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

More details

No, there is no direct bus from Porto to Milan. However, there are services departing from Porto, Porto and arriving at conciliazione m1 via Chambéry and lampugnano m1. The journey, including transfers, takes approximately 31 h 42 min.

More details

No, there is no direct train from Porto to Milan. However, there are services departing from Porto(Campanha) and arriving at Milano Centrale via Vigo-Guixar, Madrid-Puerta de Atocha, Avignon TGV and Geneve. The journey, including transfers, takes approximately 27 h 13 min.

More details

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

Get driving directions

The best way to get from Porto to Milan without a car is to train which takes 27 h 13 min and costs 310€ - 460€.

More details

It takes approximately 5 h 54 min to get from Porto to Milan, including transfers.

More details

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

More details

Porto to Milan train services, operated by Portuguese Railways (CP), depart from Porto(Campanha) station.

More details

The best way to get from Porto to Milan is to fly which takes 5 h 54 min and costs 40€ - 220€. Alternatively, you can train, which costs 310€ - 460€ and takes 27 h 13 min, you could also bus, which costs 100€ - 180€ and takes 31 h 42 min.

Mode details

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

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

Ryanair, TAP Portugal and 11 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, Genève, and Geneve in around 27 h 13 min.

Airlines
TAP Portugal
Website
flytap.com
Flights from Porto to Milan Malpensa
Ave. Duration
2 h 35 min
When
Every day
Estimated price
$75 - $600
Flights from Porto to Milan Malpensa via Lisbon
Ave. Duration
5 h 20 min
When
Every day
Estimated price
$75 - $600
Flights from Porto to Zurich
Ave. Duration
2 h 35 min
When
Every day
Estimated price
$90 - $550
Flights from Porto to Zurich via Lisbon
Ave. Duration
4 h 46 min
When
Every day
Estimated price
$85 - $550
Lufthansa
Website
lufthansa.com
Flights from Porto to Milan Malpensa via Munich
Ave. Duration
4 h 40 min
When
Every day
Estimated price
$230 - $700
Flights from Porto to Milan Malpensa via Frankfurt
Ave. Duration
5 h 20 min
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$230 - $700
Flights from Porto to Milan Linate via Frankfurt
Ave. Duration
5 h 16 min
When
Every day
Estimated price
$270 - $900
Flights from Porto to Milan Linate via Munich, Frankfurt
Ave. Duration
8 h
When
Every day
Estimated price
$270 - $900
Flights from Porto to Lugano via Munich, Zurich
Ave. Duration
6 h 30 min
When
Every day
Estimated price
$240 - $1,200
Flights from Porto to Lugano via Frankfurt, Zurich
Ave. Duration
9 h 37 min
When
Every day
Estimated price
$240 - $1,100
Flights from Porto to Zurich via Munich
Ave. Duration
4 h 35 min
When
Every day
Estimated price
$210 - $750
Iberia
Website
iberia.com
Flights from Porto to Milan Malpensa via Madrid
Ave. Duration
4 h 10 min
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$110 - $600
Flights from Porto to Milan Malpensa via Paris Orly
Ave. Duration
4 h 50 min
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$100 - $550
Flights from Porto to Milan Malpensa via Barcelona
Ave. Duration
5 h 30 min
When
Tuesday and Thursday
Estimated price
$100 - $550
Flights from Porto to Milan Linate via Madrid
Ave. Duration
5 h 48 min
When
Every day
Estimated price
$170 - $700
Flights from Porto to Zurich via Madrid
Ave. Duration
4 h 35 min
When
Every day
Estimated price
$110 - $700
Flights from Porto to Zurich via Barcelona
Ave. Duration
5 h
When
Thursday
Estimated price
$90 - $800
Swiss
Website
swiss.com
Flights from Porto to Lugano via Zurich
Ave. Duration
6 h 28 min
When
Every day
Estimated price
$160 - $1,100
Flights from Porto to Lugano via Geneva, Zurich
Ave. Duration
7 h 50 min
When
Monday, Wednesday, Friday, Saturday and Sunday
Estimated price
$140 - $950
Flights from Porto to Zurich
Ave. Duration
2 h 35 min
When
Every day
Estimated price
$90 - $550
Flights from Porto to Zurich via Geneva
Ave. Duration
5 h 15 min
When
Monday, Wednesday, Friday, Saturday and Sunday
Estimated price
$100 - $550
Ryanair
Website
ryanair.com
Flights from Porto to Milan Malpensa
Ave. Duration
2 h 30 min
When
Monday, Thursday, Friday and Sunday
Estimated price
$28 - $350
Flights from Porto to Milan Malpensa via Valencia
Ave. Duration
5 h 5 min
When
Wednesday, Friday and Sunday
Estimated price
$28 - $350
Flights from Porto to Milan Bergamo
Ave. Duration
2 h 35 min
When
Monday, Wednesday, Thursday, Friday, Saturday and Sunday
Estimated price
$35 - $420
Flights from Porto to Milan Bergamo via Madrid
Ave. Duration
4 h 35 min
When
Monday to Saturday
Estimated price
$35 - $420
Flights from Porto to Milan Bergamo via London Stansted
Ave. Duration
5 h 35 min
When
Saturday
Estimated price
$35 - $420
Flights from Porto to Milan Bergamo via Cologne Bonn
Ave. Duration
5 h 40 min
When
Monday, Thursday, Friday and Sunday
Estimated price
$35 - $420
Vueling Airlines
Website
vueling.com
Flights from Porto to Milan Malpensa via Paris Orly
Ave. Duration
4 h 50 min
When
Monday, Tuesday, Wednesday, Thursday, Friday and Sunday
Estimated price
$100 - $550
Flights from Porto to Milan Malpensa via Barcelona
Ave. Duration
5 h 30 min
When
Tuesday and Thursday
Estimated price
$100 - $550
Flights from Porto to Zurich via Barcelona
Ave. Duration
5 h
When
Thursday
Estimated price
$90 - $800
easyJet
Website
easyjet.com
Flights from Porto to Milan Malpensa via Paris CDG
Ave. Duration
4 h 55 min
When
Thursday
Estimated price
$150 - $650
Flights from Porto to Milan Linate via London Gatwick
Ave. Duration
8 h 55 min
When
Monday to Friday
Estimated price
$120 - $600
Flights from Porto to Zurich
Ave. Duration
2 h 30 min
When
Tuesday, Thursday and Saturday
Estimated price
$170 - $850
Air Europa
Website
aireuropa.com
Flights from Porto to Milan Malpensa via Madrid
Ave. Duration
4 h 55 min
When
Every day
Estimated price
$150 - $750
Flights from Porto to Zurich via Madrid
Ave. Duration
4 h 50 min
When
Every day
Estimated price
$120 - $700
Air France
Website
airfrance.com
Flights from Porto to Milan Malpensa via Paris CDG
Ave. Duration
5 h 5 min
When
Tuesday, Thursday and Saturday
Estimated price
$190 - $1,100
Flights from Porto to Zurich via Paris CDG
Ave. Duration
4 h 50 min
When
Tuesday, Thursday and Saturday
Estimated price
$180 - $900
Brussels Airlines
Website
brusselsairlines.com
Flights from Porto to Milan Linate via Brussels
Ave. Duration
5 h 15 min
When
Monday, Thursday, Friday and Sunday
Estimated price
$95 - $650
Luxair
Website
luxair.lu
Flights from Porto to Milan Linate via Luxembourg
Ave. Duration
6 h 55 min
When
Monday to Friday
Estimated price
$100 - $550
Eurowings
Website
eurowings.com
Flights from Porto to Zurich via Dusseldorf
Ave. Duration
5 h 40 min
When
Thursday and Sunday
Estimated price
$200 - $1,100
Train operators
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. Swiss Railways codeshares with American Airlines and Swiss International Air Lines out of Zurich International Airport.

Contact Details
Website
sbb.ch
Train from Lugano to Milano Centrale
Ave. Duration
1 h 16 min
Frequency
Hourly
Estimated price
$22 - $40
Website
fahrplan.sbb.ch
Schedules at
fahrplan.sbb.ch
Train from Zürich HB to Milano Centrale
Ave. Duration
4 h 3 min
Frequency
Every 2 hours
Estimated price
$65 - $120
Website
fahrplan.sbb.ch
Schedules at
fahrplan.sbb.ch
Train from Geneve to Milano Centrale
Ave. Duration
3 h 55 min
Frequency
Every 4 hours
Estimated price
$85 - $140
Website
fahrplan.sbb.ch
Schedules at
fahrplan.sbb.ch
Train from Sion to Milano Centrale
Ave. Duration
2 h 22 min
Frequency
Every 4 hours
Estimated price
$45 - $75
Website
fahrplan.sbb.ch
Schedules at
fahrplan.sbb.ch
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 Lugano to Milano Centrale
Ave. Duration
1 h 15 min
Frequency
Every 4 hours
Estimated price
$21 - $30
Website
orario.trenitalia.com
Train from Zuerich Hb to Milano Centrale
Ave. Duration
3 h 26 min
Frequency
Every 3 hours
Estimated price
$45 - $65
Website
orario.trenitalia.com
Train from Geneve to Milano Centrale
Ave. Duration
3 h 58 min
Frequency
4 times a day
Estimated price
$55 - $80
Website
orario.trenitalia.com
Train from Sion to Milano Centrale
Ave. Duration
2 h 24 min
Frequency
4 times a day
Estimated price
$35 - $55
Website
orario.trenitalia.com
Portuguese Railways (CP)

Comboios de Portugal (CP) is the national railway network of Portugal, and spans over 2700km, with trains being split into four main types: regional and intercity trains, international and domestic high-speed trains, and international night trains. Portugal's main stations are Santa Apolónia in Lisbon and Campanha in Porto - these train stations connect to trains in Portugal's main cities and international destinations. The Alfa Pendular, the fastest train in Portugal, is a popular travel choice, as it can run at a speed of up to 250 km/h.

Contact Details
Phone
+351 707 210 220
Website
cp.pt
Train from Porto(Campanha) to Vigo-Guixar
Ave. Duration
2 h 20 min
Frequency
3 times a day
Estimated price
$14 - $27
Website
cp.pt
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 Vigo-Guixar to Madrid-Puerta de Atocha
Ave. Duration
6 h 51 min
Frequency
Twice a week
Estimated price
$70 - $90
Website
renfe.com
Train from Vigo-Guixar to Barcelona Sants
Ave. Duration
13 h 40 min
Frequency
4 times a week
Estimated price
$150 - $180
Website
renfe.com
Train from Barcelona Sants Station to Gare de Valence TGV
Ave. Duration
4 h 13 min
Frequency
Twice daily
Estimated price
$65 - $80
Website
renfe.com
Spanish Railways AVE
Rome2rio's guide to Spanish Railways AVE
Contact Details
Website
renfe.com
Train from Madrid-Puerta de Atocha to Avignon TGV
Ave. Duration
7 h 17 min
Frequency
4 times a week
Estimated price
$120 - $180
Website
renfe.com
Train from Barcelona Sants to Valence TGV
Ave. Duration
4 h 18 min
Frequency
Once daily
Estimated price
$70 - $110
Website
renfe.com
inOui TGV
Phone
0033 892 353535
Website
en.oui.sncf
Train from Avignon TGV to Genève
Ave. Duration
2 h 50 min
Frequency
3 times a week
Estimated price
$75 - $85
Website
en.oui.sncf
2nd Class
$75 - $85
1st Class
$100 - $150
Train from Barcelona Sants to Valence TGV
Ave. Duration
4 h 14 min
Frequency
5 times a day
Estimated price
$100 - $120
Website
en.oui.sncf
2nd Class
$100 - $120
1st Class
$140 - $210
Train from Chambery-Challes-E to Milano Porta Garibaldi
Ave. Duration
4 h 5 min
Frequency
3 times a day
Estimated price
$65 - $80
Website
en.oui.sncf
2nd Class
$65 - $80
1st Class
$95 - $130
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 Valence TGV to Chambery-Challes-E
Ave. Duration
1 h 55 min
Frequency
Hourly
Estimated price
$27 - $40
Website
en.oui.sncf
2nd Class
$27 - $40
1st Class
$35 - $60
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 Porto, Porto to Chambéry, Chambéry
Ave. Duration
25 h 15 min
Frequency
3 times a week
Estimated price
$100 - $170
Website
flixbus.co.uk
Bus from Chambéry to Milan, Milan
Ave. Duration
5 h
Frequency
Twice daily
Estimated price
$19 - $35
Website
flixbus.co.uk
Ouibus

As the bus subsidiary of French railway SNCF, Ouibus offers comfortable, eco-friendly coaches serving 35 French cities and 11 European cities at affordable fares. Ouibus journeys are safe and comfortable, with the four-star coaches offering power outlets, restrooms and WiFi. All Ouibus stations are located close to town centres for easy access to public transport. Getting on one of the 130 daily journeys is easy - electronic travel documents include your ticket and a personalised mini-guide with handy information.

Contact Details
Phone
0890715298
Website
ouibus.com
Bus from Chambéry to Milan
Ave. Duration
5 h 20 min
Frequency
Once a week
Estimated price
$12 - $18
Website
Ouibus
InterNorte
Phone
707 200 512
Website
internorte.pt
Bus from Porto to Sion
Ave. Duration
29 h 58 min
Frequency
3 times a week
Estimated price
$110 - $150
Schedules at
internorte.pt
Eurolines FR
Phone
+ 33 1 41 86 24 21
Website
eurolines.fr
Bus from Porto to Nice
Ave. Duration
28 h 30 min
Frequency
3 times a week
Estimated price
$120 - $230
Schedules at
eurolines.fr
Bus from Nice to Milan
Ave. Duration
4 h 46 min
Frequency
Once daily
Estimated price
$30 - $85
Schedules at
eurolines.fr

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 2 h 30 min.

Search flights

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

More details

Milan is 1 h ahead of Porto. It is currently 12:07 AM in Porto and 1:07 AM in Milan.

Porto to Milan train services, operated by Swiss Railways (SBB/CFF/FFS), arrive at Milano Centrale station.

More details

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

Get driving directions

Iberia, Air Europa, easyJet and five other airlines offer flights from Porto Airport to Milan Malpensa Airport.

Search flights

There are 4161+ hotels available in Milan. Prices start at $62 USD per night.

More details

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

More details