COVID-19 Travel restrictions may apply in Italy. Learn More.

There are 10 ways to get from Perugia to Milan by train, bus, rideshare, car, plane or night bus

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

Train via Milano Rogoredo  •  3h 39m

  1. Take the train from Perugia to Milano Rogoredo Fr / ...

29€ - 102€

Cheapest option

Bus  •  6h 35m

  1. Take the bus from Perugia, Perugia to Milan, Milan 529

23€ - 29€

8 alternative options

Train  •  3h 42m

  1. Take the train from Perugia to Milano P.Garibaldi Fr

30€ - 110€

Train via Florence  •  4h 57m

  1. Take the train from Perugia to Firenze S.M.N. Re / ...
  2. Take the train from Firenze Santa Maria Novella to Milano Centrale 9940 / ...

31€ - 114€

Rideshare  •  5h 33m

  1. Take the rideshare from Perugia to Milan 452.2 km

25€

Drive  •  4h 18m

  1. Drive from Perugia to Milan 452.6 km

60€ - 90€

Fly Perugia to Milan Linate  •  2h 58m

  1. Fly from Perugia (PEG) to Milan Linate (LIN) PEG - LIN

49€ - 165€

Night bus to Rome, fly to Milan Linate  •  5h 6m

  1. Take the night bus from Perugia, Perugia to Rome Fiumicino Airport
  2. Fly from Rome (FCO) to Milan Linate (LIN) FCO - LIN

48€ - 247€

Night bus to Rome, fly to Milan Malpensa  •  5h 35m

  1. Take the night bus from Perugia, Perugia to Rome Fiumicino Airport
  2. Fly from Rome (FCO) to Milan Malpensa (MXP) FCO - MXP

63€ - 191€

Night bus to Rome, fly to Milan Bergamo  •  5h 53m

  1. Take the night bus from Perugia, Perugia to Rome Fiumicino Airport
  2. Fly from Rome (FCO) to Milan Bergamo (BGY) FCO - BGY

47€ - 345€

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 international borders began to reopen in Italy from June 3.

Official Coronavirus (COVID-19) Information for Italy

Some domestic travel restrictions began to ease in Italy from June 3.

Official Coronavirus (COVID-19) Information for Italy

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

Official Coronavirus (COVID-19) Information for Italy

Last updated: July 8 | Data sourced from: ACAPS, OXFORD

Questions & Answers

The cheapest way to get from Perugia to Milan is to rideshare which costs 25€ and takes 5h 33m.

More details

The quickest way to get from Perugia to Milan is to fly which costs 45€ - 170€ and takes 2h 58m.

More details

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

More details

Yes, there is a direct train departing from Perugia and arriving at Milano P.Garibaldi. Services depart six times a week, and operate Monday to Saturday. The journey takes approximately 3h 42m.

More details

The distance between Perugia and Milan is 365 km. The road distance is 452.6 km.

Get driving directions

The best way to get from Perugia to Milan without a car is to train via Milano Rogoredo which takes 3h 39m and costs 29€ - 110€.

More details

It takes approximately 3h 39m to get from Perugia to Milan, including transfers.

More details

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

More details

Perugia to Milan train services, operated by Trenitalia Frecce, depart from Perugia station.

More details

The best way to get from Perugia to Milan is to train via Milano Rogoredo which takes 3h 39m and costs 29€ - 110€. Alternatively, you can bus, which costs 23€ - 29€ and takes 6h 35m, you could also fly, which costs 45€ - 170€ and takes 2h 58m.

Mode details

Map of how to get from Perugia to Milan.
Launch map view
  • Distance: 365 km
  • Duration: 3h 39m

What companies run services between Perugia, Italy and Milan, Italy?

Trenitalia Frecce operates a train from Perugia to Milano Rogoredo twice daily. Tickets cost 30€ - 100€ and the journey takes 3h 24m. Trenitalia Intercity also services this route once daily. Alternatively, FlixBus operates a bus from Perugia, Perugia to Milan, Milan 3 times a day. Tickets cost 22€ - 27€ and the journey takes 5h 45m.

Airlines
Alitalia
Website
alitalia.com
Flights from Perugia to Milan Linate
Ave. Duration
1h 5m
When
Every day
Estimated price
45€ - 160€
Flights from Rome to Milan Linate
Ave. Duration
1h 10m
When
Every day
Estimated price
35€ - 160€
Flights from Rome to Milan Linate via Naples
Ave. Duration
2h 55m
When
Every day
Estimated price
35€ - 160€
Flights from Rome to Milan Malpensa
Ave. Duration
1h 12m
When
Every day
Estimated price
45€ - 210€
Flights from Rome to Milan Bergamo
Ave. Duration
1h 15m
When
Every day
Estimated price
60€ - 300€
Meridiana
Website
meridiana.it
Flights from Rome to Milan Malpensa
Ave. Duration
1h 20m
When
Every day
Estimated price
24€ - 240€
Neos
Website
neosair.it
Flights from Rome to Milan Malpensa
Ave. Duration
1h 12m
When
Tuesday and Friday
Estimated price
60€ - 220€
Ethiopian Airlines
Website
ethiopianairlines.com
Flights from Rome to Milan Malpensa
Ave. Duration
1h 40m
When
Monday, Tuesday, Thursday and Saturday
Estimated price
110€ - 260€
Train operators
Trenitalia Frecce

Trenitalia’s high-speed Frecce trains run on specialised tracks and have a greater level of service and comfort than InterCity and regional trains. There are three types of Frecce trains: Frecciarossa, (the fastest; connects major Italian cities); Frecciargento (mostly connect Rome to other Italian cities); and Frecciabianca (the slowest Frecce trains). Frecciarossa trains offer four classes of service, all with free Wi-Fi: Standard, Premium, Business and Executive. All Frecce tickets include a seat reservation and must be purchased before boarding the train.

Contact Details
Phone
+39 06 68475475
Website
trenitalia.com
Train from Perugia to Milano Rogoredo
Ave. Duration
3h 24m
Frequency
Twice daily
Estimated price
30€ - 100€
Website
Trenitalia Frecce
Super Economy
30€ - 45€
Base Standard
55€ - 80€
Base Premium
70€ - 100€
Train from Perugia to Milano P.Garibaldi
Ave. Duration
3h 42m
Frequency
6 times a week
Estimated price
30€ - 110€
Website
Trenitalia Frecce
Super Economy
30€ - 45€
Base Standard
60€ - 80€
Base Premium
70€ - 110€
Train from Perugia to Firenze S.M.N.
Ave. Duration
1h 31m
Frequency
Twice daily
Estimated price
14€ - 55€
Website
Trenitalia Frecce
Super Economy
14€ - 20€
Base Standard
30€ - 45€
Base Premium
35€ - 55€
Trenitalia Intercity

Trenitalia’s Intercity (IC) trains are slower than the high-speed Frecce trains but are still a good way to travel between major cities and towns, with routes including Rome to Naples, Venice to Bologna and Milan to Genoa. Tickets usually open for booking 90 days ahead of travel, and you’ll need make a seat reservation before boarding. All IC trains have 1st and 2nd class carriages as well as a bar buffet car, air conditioning and power sockets. InterCity trains that run at night are called InterCity Notte (ICN).

Contact Details
Phone
+39 06 68475475
Website
trenitalia.com
Train from Perugia to Milano Rogoredo
Ave. Duration
5h 29m
Frequency
Once daily
Estimated price
27€ - 40€
Website
Trenitalia Intercity
2nd Class
27€ - 40€
Train from Perugia to Firenze S.M.N.
Ave. Duration
1h 31m
Frequency
Once daily
Estimated price
10€ - 15€
Website
Trenitalia Intercity
2nd Class
10€ - 15€
Trenitalia

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 Perugia to Firenze S.M.N.
Ave. Duration
2h 11m
Frequency
Every 4 hours
Estimated price
10€ - 21€
Website
Trenitalia
1st Class
19€ - 21€
ItaloTreno

Private train company Italotreno operates high-speed trains in Italy on the same tracks as Trenitalia. The routes service 21 stations across the country, including popular routes Milan-Florence, Rome-Venice and Bologna-Naples. Choose from four classes of service, all with free Wi-Fi: Smart, Comfort, Prima and Club Executive. Italo also operates Italobus – an integrated train-bus service that takes passengers from the main train stations to other Italian cities.

Contact Details
Phone
+39 060708
Website
italotreno.it
Train from Firenze Santa Maria Novella to Milano Centrale
Ave. Duration
1h 55m
Frequency
Hourly
Estimated price
20€ - 60€
Website
Italo Treno
Smart Economy
23€ - 35€
Smart Low Cost
20€ - 29€
Smart Flex
40€ - 60€
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 Perugia, Perugia to Milan, Milan
Ave. Duration
5h 45m
Frequency
3 times a day
Estimated price
22€ - 27€
Website
flixbus.co.uk
Night bus from Perugia, Perugia to Rome Fiumicino Airport
Ave. Duration
2h 30m
Frequency
Every 2 hours
Estimated price
12€ - 15€
Website
flixbus.co.uk
Other operators
BlaBlaCar

Blablacar is a popular ridesharing platform with 70 million users over 22 (mostly European) countries. The basic idea is that you carpool with locals who are already planning to drive your route and have space in their car. With some flexibility, you’ll get to your destination often faster and cheaper than other means. On the website or app, enter your departure and arrival points and your date of travel, sift through the profiles of drivers who’ve posted pre-planned drives and find one whose timing and preferences match yours. Request to join the ride, wait to be accepted, and pay your share of the set price.

Rome2rio's guide to BlaBlaCar
Contact Details
Website
blablacar.com
Rideshare from Perugia to Milan
Ave. Duration
5h 33m
Frequency
Every 4 hours
Estimated price
25€
Book at
blablacar.co.uk

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 Perugia Airport to Milan Linate Airport is the direct flight which takes 1h 5m.

Search flights

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

More details

Perugia to Milan train services, operated by Trenitalia Frecce, arrive at Milano P.Garibaldi station.

More details

Yes, the driving distance between Perugia to Milan is 453 km. It takes approximately 4h 18m to drive from Perugia to Milan.

Get driving directions

Alitalia offers flights from Perugia Airport to Milan Linate Airport.

Search flights

Book your Perugia to Milan train tickets online with Omio.

Search and book

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

More details

Check out Blablacar's carpooling service for rideshare options between Perugia and Milan. A great option if you don't have a driver's licence or want to avoid public transport.

Read Rome2rio's guide to Blablacar

The best way to get from Perugia to Perugia Airport is to bus which takes 27 min and costs 2€ - 4€.

More details