Rome to Milan

Last updated:

Overview Compare Train Bus Flight

How to get from Rome to Milan

As Italy’s economic capital, Milan is where luxury and art unite. It’s definitely a more modern city compared to cultural Rome, but this doesn’t mean that it lacks history.

Milan boasts of a massive collection of old and new masterpieces, particularly Leonardo da Vinci’s Last Supper. Everywhere you look is jaw-dropping architecture – from its more recent skyscrapers to the age-old Milan Cathedral. And although shopping is expensive, we highly recommend a visit to the iconic Galleria, even just to window shop!

3 ways to get from Rome to Milan

The best way to travel the 570 km distance from Rome to Milan is by train with fares from €62 ($64). Travel time with a regular train is around 7-9.5 hours and 3-4 hours for a high-speed train. Alternatively, you can take a 7.5 to 11-hour bus from €17 ($17.50) or a 1-hour flight (plus transfers) for €40.50 ($42).

Transport ModeDurationCostsAvailability
Train3-9.5 hours€62 ($64)Check Train Tickets
Bus7.5-11 hours€17 ($17.50)Check Bus Tickets
Flight3hrs 10m (incl. transfers)€40.50 ($42)Check Flights

The train is the most comfortable and convenient way to get from Rome to Milan. Travel time depends on the train you take. We suggest taking high-speed trains that get you to Milan in just 3-4 hours. Fares start from €66 ($68), just a few euros more than the regional trains. If you want to save on both daytime and costs, you can take an overnight Intercity train for €53 ($55).

If you don’t mind the long travel, you can save some money by taking a bus. Bus rates from Rome to Milan start from €17 ($17.50). Travel time is between 7.5-11 hours, which is almost the same as the regional train. Overnight buses are also available on this route.

The flight is the fastest option to get from Rome to Milan with combined fares from €40.50 ($42). The flight itself is just an hour, but you still need to add the travel time to and from the airports and the waiting time for your flight. This option requires several transfers, so you might be better off with a direct high-speed train for a more comfortable trip. Also, trains produce much fewer emissions compared to flights, making them a much better eco-friendly option.

TIP: If you decide to travel by plane, please consider including a carbon compensation fee to reduce your impact on the environment.

Itinerary from Rome to Milan

Rome to Milan by Train

Duration: 3-9.5 hours
Cost: €62 ($64)
Duration: 3-9.5 hours
Cost: €62 ($64)

If you want to save on costs, we recommend taking an overnight train from Rome to Milan. There is one Intercity train that departs at 23:55 and arrives the next day at 06:55. This train is the cheapest at €53 ($55), and although not a sleeper train, it’s comfortable enough for a good night’s sleep.

The rest of the trains available on this route are high-speed trains. See below for more details on the different kinds of trains that you can choose from:

  • Intercity trains are the slowest option because they stop in every city, but they are also the cheapest at €62 ($64). Apart from one overnight train, there are 4 other departures during the day. Some trains require 1 transfer, so the travel time takes 7-9.5 hours.
  • Italo trains are high-speed trains with at least 4 departures per hour from early morning to night. This train is a bit cheaper than Frecciarossa with ticket prices from €73 ($76).
  • Frecciarossa trains are the most expensive that cost €79 ($82). Travel time is also 3-4 hours, so we suggest taking the cheaper Italo trains with the same travel time.

Departure and arrival station

Most of the trains depart from Roma Termini, 2 km from the famous Colosseum. There are also some trains departing from Roma Tiburtina.

In Milan, there are also multiple arrival stations. The main train station is Milan Centrale, about 4 km north of Milan Cathedral. Some Italo trains also arrive at Milan Rogoredo, located in the southeast of Milan city centre.

Train schedule from Rome to Milan

Intercity6x departures a day from
06:27 to 16:35
7-9.5 hours€62 ($64)
Check Train Tickets
Italo4x departures per hour from
05:40 to 20:50
3-4 hours€73 ($76)
Check Train Tickets
Frecciarossa3x departures per hour from
06:00 to 20:10
3-4 hours€79 ($82)
Check Train Tickets

Prices vary daily and depend on how early you book. For online booking and the full schedules, you can visit Omio.

Rome to Milan by Bus

Duration: 7.5-11 hours
Cost: €17 ($17.50)
Duration: 7.5-11 hours
Cost: €17 ($17.50)

The bus is a good alternative when the trains from Rome to Milan are too expensive on the day of your trip. While buses are subject to traffic and some bus departures can get delayed, there are still some advantages.

Although not as spacious as the trains, the buses can still be comfortable. There are also several night buses on this trip, so you get to save daytime and a night on accommodation.

More importantly, bus tickets are cheaper than train tickets. If you don’t mind the long travel, you can spend 7.5-11 hours on the bus for just €17 ($17.50). We suggest taking this bus instead of the Intercity train that costs thrice as much.

Departure and arrival station

All buses depart from Rome Tiburtina Bus Station just beside the train station with the same name.

Same as the train, the buses also have two arrival points in Milan. The main bus station is Lampugnano Bus Station, located 10 km northwest of the city centre. You can also get off at San Donato Bus Stop on the southeast side of Milan centre.

Bus schedule from Rome to Milan

Bus OperatorScheduleDurationCosts
FlixBus30x departures a day from
08:20 to 22:45
7.5-11 hours€17 ($17.50)
Check Bus Tickets
Itabus8x departures a day from
07:15 to 23:30
8.5 hours€20 ($20.50)
Check Bus Tickets

Note that the prices for the bus tickets also vary depending on the bus departure and the date you book them.

You can check the FlixBus and BookAway websites for the full schedules. We also suggest booking your tickets online ahead of your trip.

Rome to Milan by Flight

Duration: 3hrs 10m
Cost: €40.50 ($42)
Duration: 3hrs 10m
Cost: €40.50 ($42)

A flight from Rome to Milan takes only a little over an hour, but that doesn’t include yet the travel time to and from the airports and the waiting time for your flight.

While the overall costs for this option are cheaper than any of the trains, this option includes several transfers. For this route, we suggest taking a direct high-speed train.

Do you still want to take a flight? Read on for a step-by-step guide.

Step 1: Rome City Centre to Fiumicino Airport

Duration: 1 hour
Cost: €6 ($6)
Duration: 1 hour
Cost: €6 ($6)

Flights from Rome to Milan depart from Fiumicino Airport, located some 30 km southwest of the city centre.

The cheapest way to get to Fiumicino Airport is by bus. There are several airport buses available for this route, but we recommend travelling with Terravision because of their good reviews.

Travel time with the bus is around 45 minutes. Terravision buses depart from Roma Termini at least once every hour from 04:30 to 12:20. A bus ticket costs €6 ($6).

Check Bus Tickets with BookAway

Other options from Rome city centre to Fiumicino Airport include a 30-minute train that costs €14 ($14.50) and a 40-minute taxi or Uber with rates from €48 ($50).

Step 2: Rome to Milan by Flight

Duration: 1hr 10m
Cost: €33 ($34)
Duration: 1hr 10m
Cost: €33 ($34)

ITA Airways operates multiple daily flights from Rome to Milan. Airfares start from €33 ($34), but they can get up to €98 ($100). You can get to Milan in just over an hour.

Check Flights with Skyscanner

Flights arrive at Linate Airport, located 7 km east of Milan city centre.

Step 3: Linate Airport to Milan City Centre

Duration: 1 hour
Cost: €1.50 ($1.55)
Duration: 1 hour
Cost: €1.50 ($1.55)

The cheapest way to get from Linate Airport to Milan city centre is by bus. Several companies offer bus trips to different areas in Milan centre. From Linate, you can take Bus Line 73 to Duomo M1 M3 in an hour for €2 ($2.05). This bus is available daily from 05:00 to 24:00.

There are also buses available to Milan Centrale Station for €5 ($5). Travel time is just 25 minutes.

Alternatively, you can take an Uber Black. Milan is one of the few Italian cities where Uber is allowed. You can easily hail one as long as you have the app on your phone. Rates for a 2-seater car start from €25 ($26).

We don’t really recommend taking an airport taxi for this route because fares can be expensive. Taxi fares start from €33 ($34) for the 20-minute journey.

Most popular routes in Europe

Split to Dubrovnik

Dubrovnik to Split

Split to Hvar

Dubrovnik to Hvar

Rome to Naples

Milan to Venice

Rome to Florence

Venice to Milan

Naples to Capri

Rome to Positano

Rome to Milan

Athens to Santorini

Athens to Milos

Was this post helpful?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Your feedback is very valueable to us

How we can improve this post?