Milan to St. Moritz: Train, Car or Private Transfer.
St. Moritz is about 180 km from Milan, across the Swiss border. The train takes about six hours with a change in Tirano; the car crosses the Maloja Pass in about three. Here is the real comparison, updated July 2026.
Milan → St. Moritz: the comparison
| Option | Price | Duration | Where it takes you |
|---|---|---|---|
| Train via Tirano (regional + Rhaetian Railway) | €12.50 + CHF 33 per person | 5h 30min - 6h 30min | St. Moritz station, then a taxi |
| Bernina Express (panoramic, same line) | CHF 32 supplement on the fare | about 6h | St. Moritz station, reserved seats |
| Direct bus | does not exist | - | - |
| Private transfer | fixed price per vehicle | about 3h | Your hotel door in the Engadine |
By train via Tirano
From Milano Centrale the regional train to Tirano takes about 2.5 hours (€12.50). In Tirano you cross the square: the Rhaetian Railway station is right opposite, and the Bernina train climbs to St. Moritz in about 2h15 (CHF 33), roughly hourly. With the change and connections, the real journey is 5.5 to 6.5 hours.
The Bernina Express
Same tracks, panoramic carriages and reserved seats: the Tirano to St. Moritz supplement costs CHF 32, almost as much as the ticket itself. A UNESCO-listed, genuinely beautiful ride, but still a six-hour journey with a change: perfect as an experience, less so as logistics with skis and luggage.
By car: the Maloja Pass
The classic road climbs from Como or Lecco to Chiavenna and crosses the Maloja Pass: about 180 km and 3 hours, with no Swiss motorway stretch, so no vignette is needed. The pass is open all year with winter equipment; after heavy snowfall it can close for a few hours.
With a private transfer
The car picks you up at your Milan address, or straight at the airport, and drops you at your hotel door in the Engadine: about 3 hours, winter tyres, skis and luggage loaded at departure. Fixed per-vehicle price, pay on arrival.
See the Milan → St. Moritz transferAnd from Malpensa to St. Moritz?
There is no direct rail link from Malpensa: by train you must go back into Milan and start again, which pushes past 6.5 hours. By car the terminal is about 180 km from St. Moritz, just under 3 hours via Como and the Maloja. A private transfer meets you in arrivals with a name sign and takes you to the hotel, from Malpensa as well as Linate and Bergamo.
The train: when it genuinely makes sense
If you travel light and the journey is part of the holiday, the Bernina is one of the most beautiful railways in the world and the fare stays honest. The maths change with skis and luggage, in a group or on a tight schedule: six hours with a change against three door to door, and at the other end the station is not your hotel.
Why a private transfer
A car and driver from your address to your hotel door in the Engadine.
- Fixed per-vehicle price, locked at booking
- About 3 hours door to door, half the train time
- Winter tyres and room for skis and luggage
- Also from Malpensa, Linate and Bergamo with an arrivals welcome
- The whole upper Engadine: Sils, Silvaplana, Celerina, Pontresina
The Engadine starts at your door
No connections to juggle: get in the car in Milan, step out in front of your hotel in St. Moritz.
Frequently asked questions
Book your private transfer
Enter pickup and destination, see the fixed price for every vehicle and confirm in 2 minutes.