There are 3 ways to get from Milan to St. Moritz by 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.
Train, bus • 4h 44m
SFr 13 - SFr 19
2 alternative options
Train • 5h 38m
SFr 35 - SFr 42
Drive • 2h 38m
SFr 24 - SFr 40
Coronavirus (COVID-19) in Switzerland
There is widespread community transmission globally.
Some travel restrictions are being lifted in Switzerland. For the latest travel status, please check the official page for Switzerland.
Coronavirus (COVID-19) Travel Advice
Some international borders began to reopen in Switzerland from 5/15/2020.Source Type: Government | Last updated: 5/16/2020
There are currently lockdown measures within Switzerland to control the spread of Coronavirus (COVID-19). Domestic travel within Switzerland may be affected.Source Type: Media | Last updated: 3/26/2020
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.Source Type: Government | Last updated: 4/18/2020
Questions & Answers
The cheapest way to get from Milan to St. Moritz is to train and bus which costs 12€ - 18€ and takes 4h 44m.
The quickest way to get from Milan to St. Moritz is to drive which costs 22€ - 35€ and takes 2h 38m.
No, there is no direct train from Milan to St. Moritz. However, there are services departing from Milano Centrale and arriving at St. Moritz via Tirano. The journey, including transfers, takes approximately 5h 38m.
The distance between Milan and St. Moritz is 125 km. The road distance is 169.6 km.
The best way to get from Milan to St. Moritz without a car is to train and bus which takes 4h 44m and costs 12€ - 18€.
It takes approximately 4h 44m to get from Milan to St. Moritz, including transfers.
Milan to St. Moritz train services, operated by Trenord, depart from Milano Centrale station.
Milan to St. Moritz train services, operated by Rhätische Bahn, arrive at St. Moritz station.
Yes, the driving distance between Milan to St. Moritz is 170 km. It takes approximately 2h 38m to drive from Milan to St. Moritz.
There are 1269+ hotels available in St. Moritz. Prices start at SFr 87 per night.
What companies run services between Milan, Italy and St. Moritz, Switzerland?
You can take a train from Milan to St. Moritz via Tirano in around 5h 38m.
Trenord operates regional and suburban lines throughout Italy’s Lombardy region, including the Malapensa Express from Milan’s Malapensa Airport and local lines around Lake Como and the Italian Lakes. Trenord train tickets can be purchased from machines at any train station and don’t need to be booked in advance.
Train from Milano Centrale to Colico
- Ave. Duration
- 1h 27m
- Every 20 minutes
- Estimated price
- SFr 7 - SFr 9
Train from Milano Centrale to Tirano
- Ave. Duration
- 2h 32m
- Every 30 minutes
- Estimated price
- SFr 11 - SFr 14
Bus from Chiavenna, Stazione to St. Moritz, Bahnhof
Want to know more about travelling around Switzerland
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
Travel inspiration and top planning tips for getting around Italy.