There are 6 ways to get from Milan to Pistoia by train (Trenitalia), bus, car, or plane
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train
best- Take the train from Milano Centrale to Firenze S.M.N.train Fr
- Take the train from Firenze S.M.N. to Pistoiatrain Re / ...
2h 35m€37–95Bus
cheapest- Take the bus from Milano, San Donato M3 to Pratobus 518 / ...
5h 5m€26–44Drive 280 km
- Drive from Milan to Pistoiacar 280 km
3h 41m€44–64Fly
- Fly from Milan Linate Airport (LIN) to Florence Peretola Airport (FLR)plane LIN - FLR
4h 44m€118–281Train via Viareggio
- Take the train from Milan Rogoredo to Viareggiotrain Ec
- Take the train from Viareggio to Pistoiatrain Re / ...
6h 33m€108–315Train via Viareggio #2 (Trenitalia)
- Take the train from Milano Centrale to Viareggiotrain Ic
- Take the train from Viareggio to Pistoiatrain Re / ...
6h 36m€45–113
Milan to Pistoia by train
Questions & Answers
The cheapest way to get from Milan to Pistoia is to bus which costs €25 - €45 and takes 5h 5m.
The fastest way to get from Milan to Pistoia is to train which takes 2h 35m and costs €35 - €95.
No, there is no direct bus from Milan to Pistoia. However, there are services departing from Milano, San Donato M3 and arriving at Pistoia via Prato. The journey, including transfers, takes approximately 5h 5m.
No, there is no direct train from Milan to Pistoia. However, there are services departing from Milano Centrale and arriving at Pistoia via Firenze S.M.N.. The journey, including transfers, takes approximately 2h 35m.
The distance between Milan and Pistoia is 338 km. The road distance is 280 km.
The best way to get from Milan to Pistoia without a car is to train which takes 2h 35m and costs €35 - €95.
It takes approximately 2h 35m to get from Milan to Pistoia, including transfers.
Milan to Pistoia bus services, operated by FlixBus, depart from Milano, San Donato M3 station.
Milan to Pistoia train services, operated by Trenitalia Frecce, depart from Milano Centrale station.
The best way to get from Milan to Pistoia is to train which takes 2h 35m and costs €35 - €95. Alternatively, you can bus, which costs €25 - €45 and takes 5h 5m, you could also fly, which costs €110 - €290 and takes 4h 44m.
What companies run services between Milan, Italy and Pistoia, Italy?
You can take a train from Milano Centrale to Pistoia via Firenze S.M.N. in around 2h 35m. Alternatively, FlixBus operates a bus from Milano, San Donato M3 to Prato twice daily. Tickets cost €24–45 and the journey takes 3h 45m.
- Website
- ita-airways.com
Flights from Milan Linate Airport to Florence Peretola Airport via Rome
- Ave. Duration
- 3h 27m
- When
- Every day
- Estimated price
- €140–250
Flights from Milan Linate Airport to Florence Peretola Airport via Vienna
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €110–400
Flights from Milan Linate Airport to Florence Peretola Airport via Frankfurt
- Ave. Duration
- 4h 10m
- When
- Friday to Sunday
- Estimated price
- €220–1,100
Flights from Milan Linate Airport to Florence Peretola Airport via Munich
- Ave. Duration
- 5h 10m
- When
- Monday, Wednesday, Thursday, and Friday
- Estimated price
- €180–800
- Website
- austrian.com
Flights from Milan Linate Airport to Florence Peretola Airport via Rome
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €140–250
Flights from Milan Linate Airport to Florence Peretola Airport via Vienna
- Ave. Duration
- 3h 40m
- When
- Every day
- Estimated price
- €110–400
- Website
- polarair.ru
Flights from Milan Linate Airport to Florence Peretola Airport via Elba Island
- Ave. Duration
- 2h 20m
- When
- Sunday
- Estimated price
- €45–550
- Website
- flexflight.dk
Flights from Milan Linate Airport to Florence Peretola Airport via Elba Island
- Ave. Duration
- 2h 20m
- When
- Sunday
- Estimated price
- €45–550
- Website
- lufthansa.com
Flights from Milan Linate Airport to Florence Peretola Airport via Frankfurt
- Ave. Duration
- 4h 10m
- When
- Friday to Sunday
- Estimated price
- €220–1,100
Flights from Milan Linate Airport to Florence Peretola Airport via Munich
- Ave. Duration
- 5h 10m
- When
- Monday, Wednesday, Thursday, and Friday
- Estimated price
- €180–800
- Website
- airdolomiti.it
Flights from Milan Linate Airport to Florence Peretola Airport via Frankfurt
- Ave. Duration
- 4h 10m
- When
- Friday to Sunday
- Estimated price
- €220–1,100
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Milano Centrale to Firenze S.M.N.
- Ave. Duration
- 1h 54m
- Frequency
- Hourly
- Estimated price
- €45–90
- Schedules at
- trenitalia.com
Train from Milano Centrale to Viareggio
- Ave. Duration
- 3h 36m
- Frequency
- Twice daily
- Estimated price
- €50–100
- Schedules at
- trenitalia.com
- Phone
- +39 06 8937 1892
- Website
- italotreno.it
Train from Milano Centrale to Firenze S.M.N.
- Ave. Duration
- 2h 41m
- Frequency
- 4 times a day
- Estimated price
- €35–75
- Website
- https://www.italotreno.it/en
- Phone
- +39 06 68475475
- Website
- trenitalia.com
Train from Milano Centrale to Firenze S.M.N.
- Ave. Duration
- 3h 42m
- Frequency
- 3 times a day
- Estimated price
- €30–70
- Website
- https://www.trenitalia.com/en.html
Train from Milano Centrale to Viareggio
- Ave. Duration
- 5h 16m
- Frequency
- Hourly
- Estimated price
- €35–75
- Website
- https://www.trenitalia.com/en.html
- Phone
- +39.06.5210550
- Website
- trenitalia.com
Train from Firenze S.M.N. to Pistoia
- Ave. Duration
- 33 min
- Frequency
- Every 15 minutes
- Estimated price
- €4–7
- Website
- https://www.trenitalia.com/en.html
Train from Viareggio to Pistoia
- Ave. Duration
- 1h 1m
- Frequency
- Every 30 minutes
- Estimated price
- €8–14
- Website
- https://www.trenitalia.com/en.html
Train from Milano Centrale to Viareggio
- Ave. Duration
- 4h 32m
- Frequency
- 4 times a week
- Estimated price
- €40–70
- Website
- https://www.trenitalia.com/en.html
Train from Viareggio to Pistoia
- Ave. Duration
- 1h 1m
- Frequency
- Every 30 minutes
- Estimated price
- €8–14
- Website
- https://www.trenitalia.com/en.html
- Phone
- +41 848 446 688
- Website
- sbb.ch
Train from Milan Rogoredo to Viareggio
- Ave. Duration
- 4h 28m
- Frequency
- Once a week
- Estimated price
- €95–300
- Website
- https://www.sbb.ch/en
Rome2Rio's guide to FlixBus
Contact DetailsContact Details
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- https://www.flixbus.fr
Bus from Milano, San Donato M3 to Prato
- Ave. Duration
- 3h 45m
- Frequency
- Twice daily
- Estimated price
- €24–45
- Website
- https://www.flixbus.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.
Related travel guides
Italy Travel Guides
Read the travel guide
5 incredible day trips from Florence by train
Read the travel guide
Want to know more about Flixbus?
Read the travel guide
More Questions & Answers
Milan to Pistoia bus services, operated by FlixBus, arrive at Prato station.
Milan to Pistoia train services, operated by Trenitalia Frecce, arrive at Firenze S.M.N. station.
Yes, the driving distance between Milan to Pistoia is 280 km. It takes approximately 3h 41m to drive from Milan to Pistoia.
Book your Milan to Pistoia train tickets online with Omio.
Book your Milan to Pistoia bus tickets online with Omio and FlixBus.
There are 2067+ hotels available in Pistoia.






















