Last Updated on September 11, 2026 by Daniel Globe
Traveling from Milan to St. Moritz is one of the most scenic journeys in Europe, taking you from the urban center of Lombardy into the high-altitude Engadin valley of the Swiss Alps. Whether you choose to navigate the winding alpine roads by car, board the regional and panoramic trains across the UNESCO-listed Bernina Pass, or take a combined train and bus route, understanding the logistics of international transfers, mountain passes, and seasonal schedules ensures a seamless alpine getaway.
Quick Answer
The driving distance from Milan to St. Moritz is approximately 104 miles (167 km) and takes around 2 hours 45 minutes to 3 hours 15 minutes via the SS36 highway and Maloja Pass. By public transit, the most popular route is the train via Tirano connecting to the scenic Bernina Railway (4.5 to 5.5 hours total). There are no direct, single-train services between the two cities due to differing track gauges.
Key Takeaways
- Driving is the fastest option: The direct route via Lake Como, Chiavenna, and the Maloja Pass (SS36 / Route 181) takes under 3 hours in clear weather and is toll-free.
- All train routes require a transfer: Trenord trains connect Milano Centrale to Tirano, where passengers transfer across the piazza to the Swiss Rhaetian Railway (RhB) over the Bernina Pass.
- Winter gear is mandatory: Between November 15 and April 15, all vehicles crossing the Italian-Swiss alpine passes must be equipped with winter tires or carry certified snow chains.
- Currency & Border: You will cross an international border from Italy (Euro / EUR) into Switzerland (Swiss Franc / CHF); keep your passport accessible for potential Schengen border checks.
At a Glance
| Distance | 167 km (103.8 miles) by road | 125 km (77.7 miles) straight-line |
| Fastest Travel Time | 2 hr 45 min to 3 hr 15 min (by car via SS36 and Maloja Pass) |
| Train Travel Time | 4 hr 45 min to 5 hr 30 min (Trenord + Rhaetian Railway via Tirano) |
| Estimated One-Way Cost | €35 – €55 (Public Transit) | €30 – €50 (Fuel & Vehicle Expenses) |
How Far Is Milan From St. Moritz?

The straight-line geographical distance between Milan, Italy, and St. Moritz, Switzerland, is approximately 77.7 miles (125 kilometers). However, because the towering Rhaetian Alps separate the Po Valley from the Upper Engadin, ground travel routes must navigate around Lake Como and climb through high mountain passes.
By road, the shortest and most direct driving distance is roughly 103.8 miles (167 kilometers) heading north along the eastern shore of Lake Como via the SS36 and crossing into Switzerland via the Maloja Pass (Passo del Maloja). If you travel via the Valtellina valley and cross the Bernina Pass via Tirano, the driving distance increases to approximately 115 miles (185 kilometers). Rail journeys cover roughly 109 miles (175 kilometers) of track due to the sweeping curves, spiral viaducts, and switchbacks required to conquer the alpine gradients.
Milan to St. Moritz Travel Time by Route
Total transit duration varies significantly depending on your transportation mode, road conditions, and transfer efficiency:
- Driving (via Maloja Pass): 2 hours 45 minutes to 3 hours 15 minutes under standard conditions. Weekend holiday traffic along the Lake Como corridor (SS36) can add 30 to 60 minutes.
- Scenic Train via Tirano (Trenord + RhB): 4 hours 45 minutes to 5 hours 30 minutes, including a seamless 15-to-30-minute cross-station transfer in Tirano.
- Train & Bus Combination via Chiavenna (Trenord + PostAuto): 3 hours 45 minutes to 4 hours 15 minutes. This is the fastest public transit connection, combining a train from Milan to Chiavenna with Swiss PostAuto Bus Line 4 over the Maloja Pass.
- Private Transfer / Taxi: Approximately 2 hours 45 minutes direct from Milan Malpensa (MXP), Linate (LIN), or Milan City Center to St. Moritz hotels.
Drive From Milan to St. Moritz
Driving provides the most schedule flexibility and delivers some of Northern Italy’s and Southeastern Switzerland’s most dramatic mountain panoramas. The journey transitions rapidly from the four-lane highway out of Milan to the scenic shores of Lake Como, before ascending into rugged alpine switchbacks.
Warning: The Maloja Pass sits at an elevation of 1,815 meters (5,955 feet) and features steep hairpin turns. Between November 15 and April 15, winter tires or onboard snow chains are legally required in both Italy and Switzerland. Mountain passes may temporarily close during severe winter storms; always verify pass status via the Graubünden Cantonal Civil Engineering Department before departing.
Products Worth Considering
Country of origin : China
Worry-Free Self-Tightening Ratchets Provide Automatic Tightening And Centering
Worry-Free Self-Tightening Ratchets Provide Automatic Tightening And Centering
Route And Distance
The standard and most efficient route leaves Milan northbound on the SS36 (Superstrada dei Laghi). You will bypass Monza, skirt past Lecco along the dramatic eastern branch of Lake Como, and continue north past Colico to Chiavenna. From Chiavenna, transition onto the SS37 toward Castasegna, crossing the Swiss border where the road becomes Swiss Main Road 3 (Route 181).
From the border, the road climbs steadily through the Val Bregaglia before tackling the famous Maloja Pass switchbacks. Once over the pass crest, you enter the high plateau of the Upper Engadin, cruising past the alpine lakes of Sils and Silvaplana directly into St. Moritz.
Drive Time And Costs
Under dry, clear conditions, the 167 km drive takes about 2 hours 45 minutes. Total one-way driving costs generally range between €30 and €50 ($33 to $55) for fuel. Notably, the Italian SS36 is a toll-free expressway, and Swiss Main Road 3 (Route 181) over the Maloja Pass is a cantonal road that does not require the Swiss Autobahn motorway vignette (CHF 40), provided you do not enter Swiss motorways (such as the A2 or A13).
Pro Tip: If driving a rental car picked up at Milan Malpensa or Linate airports, inform your rental agency that you intend to cross the international border into Switzerland to ensure your cross-border roadside assistance and green card insurance coverage remain active.
Scenic Road Tips
For an extended road trip, consider the alternate eastern approach along the SS38 through the Valtellina wine region. This path leads through Sondrio to Tirano, ascending into Switzerland via the Bernina Pass (Passo del Bernina, 2,328 meters / 7,638 feet) along Swiss Route 29. While this adds approximately 45 minutes of driving time, it offers breathtaking views of the Morteratsch Glacier and the peaks of the Bernina Range.
Take the Train From Milan to St. Moritz

Taking the train is the most popular, stress-free, and scenic way to reach St. Moritz from Milan. Because Italian and Swiss mountain rail networks use different track gauges and electrical systems, all train journeys between Milan and St. Moritz require transferring at the border station of Tirano.
The rail journey is divided into two distinct, highly scenic legs:
- Leg 1: Milano Centrale to Tirano (Trenord / Trenitalia)
Departing roughly hourly from Milan’s central station, regional express trains run north along the shores of Lake Como and through the Valtellina valley, arriving in Tirano in approximately 2 hours 30 minutes. Standard one-way 2nd-class tickets cost €12.50. - Leg 2: Tirano to St. Moritz (Rhaetian Railway / RhB)
Exit Tirano’s Italian station and walk 50 meters across the pedestrian plaza (Piazza delle Stazioni) to the Swiss Rhaetian Railway station. Board either the regular red regional train (no seat reservation required) or the official Bernina Express panoramic train. This leg climbs over the 2,253-meter Bernina Pass, taking approximately 2 hours 15 minutes to 2 hours 30 minutes. Standard one-way fares are approximately CHF 33.00 (approx. €35.00).
Note on Rail Passes: The Swiss portion of the rail journey (Tirano to St. Moritz) is 100% covered by the Swiss Travel Pass, the GA Travelcard, and Eurail/Interrail passes. If using the official Bernina Express panoramic coaches with dome windows, a mandatory seat reservation fee (CHF 26 to CHF 36 depending on season) applies in addition to your ticket or pass.
Use the Bus From Milan to St. Moritz
While there is no year-round direct express bus running directly from central Milan to St. Moritz, you can take advantage of the efficient train and Swiss PostBus (PostAuto) connection via Chiavenna:
- Take the Trenord regional train from Milano Centrale to Chiavenna (2 hours total, with a quick cross-platform connection at Colico; ticket: €7.70).
- At Chiavenna station forecourt, transfer to the iconic yellow Swiss PostAuto Bus Line 4 (Route 60.004).
- The PostBus climbs the spectacular Maloja Pass, stopping at Promontogno, Casaccia, and Sils Maria, reaching St. Moritz Bahnhof in roughly 1 hour 35 minutes (ticket: approx. CHF 22.00).
This combined route takes around 3 hours 50 minutes total, making it faster and often less crowded than the rail route via Tirano. Real-time schedules are available directly through the PostAuto Official Portal.
How Much Does Milan to St. Moritz Cost?
Travel costs vary based on your preferred level of comfort, booking timeline, and vehicle type. Below is an itemized breakdown of estimated one-way costs per adult traveler:
- Standard Regional Train (Trenord + RhB Regional): Approx. €47.50 / $52.00 (€12.50 Italian train + CHF 33.00 Swiss train).
- Panoramic Bernina Express: Approx. €75.00 – €85.00 / $82.00 – $93.00 (includes standard fare plus the mandatory seat reservation supplement).
- Train + PostAuto Bus (via Chiavenna): Approx. €31.00 / $34.00 (€7.70 train + CHF 22.00 bus fare).
- Driving (Personal/Rental Car): Approx. €30.00 – €50.00 / $33.00 – $55.00 in fuel each way, plus rental car fees and potential parking in St. Moritz (approx. CHF 20–30 per day).
- Private Chauffeur / Taxi Transfer: Typically ranges between €400.00 and €650.00 ($440 to $710) per vehicle for a luxury cross-border sedan or Mercedes V-Class van.
Connecting Rail Options and the Bernina Express

A common misconception among first-time visitors is that a single, direct, high-speed train connects Milan to St. Moritz. Because the standard Italian railway network uses standard-gauge tracks (1,435 mm) and the Swiss Rhaetian Railway operates on a specialized alpine metre-gauge system (1,000 mm), all rail passengers must change trains at Tirano.
Fortunately, the connection is designed for effortless transit:
- Frequent Daily Service: Trenord operates approximately 11 to 12 daily regional trains from Milano Centrale to Tirano, with departures roughly every 60 to 120 minutes starting at 06:20.
- Coordinated Timetables: RhB trains depart from Tirano hourly toward St. Moritz, synchronizing cleanly with incoming Italian services.
- UNESCO World Heritage Scenery: The Bernina Railway section between Tirano and St. Moritz is an engineering marvel, passing over the circular Brusio Spiral Viaduct, alongside the turquoise waters of Lago Bianco, and past the Morteratsch Glacier without needing cogwheels.
Best Scenic Stops on the Milan to St. Moritz Drive
Breaking up your road trip allows you to experience northern Italian culture and alpine valleys along the route:
- Varenna & Bellano (Lake Como): Stroll the lakeside promenade of Varenna or visit the dramatic gorge at Orrido di Bellano on the eastern shore of Lake Como.
- Chiavenna: A historic Roman-era town famous for its historic center, Palazzo Vertemate Franchi, and traditional crotti (rock cellars serving cured bresaola, local cheeses, and Valtellina wines).
- Val Bregaglia & Soglio: As you cross into Switzerland, consider a quick detour up to Soglio, a sun-drenched terrace village that the painter Giovanni Segantini famously called the “threshold to paradise.”
- Lake Sils (Silsersee): Stop at the first of the Upper Engadin lakes for lakeside walking trails and pristine reflections of the surrounding 3,000-meter peaks.
Which Milan to St. Moritz Route Is Best?
Fastest Route Options
If minimizing transit time is your top priority, driving via the SS36 and Maloja Pass is the fastest option, reaching St. Moritz in under 3 hours under normal traffic conditions. For public transportation, taking the train from Milan to Chiavenna followed by PostAuto Bus 4 over the Maloja Pass delivers the shortest transit time at approximately 3 hours 50 minutes.
Cheapest Travel Choices
Travelers on a strict budget should select the combined train and PostAuto bus via Chiavenna (approx. €31.00 total) or book advance saver regional tickets on Trenord and standard RhB regional trains (avoiding seat reservation surcharges required on the Bernina Express).
“The Bernina Railway route over the 2,253-meter pass is widely considered one of the top five most scenic rail journeys in the world, making the train ride as memorable as St. Moritz itself.”
Milan to St. Moritz Travel Tips
- Carry Physical Passports: Switzerland is in the Schengen Area but not the EU Customs Union. Spot checks for passports and customs allowances frequently occur at the Castasegna, Chiasso, and Tirano border points.
- Mind Mountain Road Elevations: If you are sensitive to altitude, take note that you will climb from Milan (120 m) to over 1,800 m (Maloja) or 2,300 m (Bernina Pass) in just a few hours. Stay hydrated.
- Check Swiss Pass Validity: If you hold a Swiss Travel Pass, remember that it does not cover the Italian train portion between Milan and Tirano/Chiavenna; you must purchase a separate Trenord ticket (€7.70 to €12.50) for the Italian segment.
- Download Offline Maps & Transit Apps: Mobile service can be intermittent in deep alpine gorges. Download offline maps in Google Maps or Apple Maps, and install the official SBB Mobile App for live Swiss train platforms and connection tracking.
Frequently Asked Questions
How long is the train from Milan to St. Moritz?
The entire train trip typically takes between 4 hours 45 minutes and 5 hours 30 minutes. This includes roughly 2.5 hours on the Trenord line from Milano Centrale to Tirano, a short cross-station transfer, and approximately 2 hours 15 minutes on the Rhaetian Railway over the Bernina Pass to St. Moritz.
Is St. Moritz close enough to Milan for a day trip?
Yes, but it makes for a long day. If driving via the Maloja Pass (under 3 hours each way), a day trip is straightforward. If taking the scenic train via Tirano (approx. 5 hours each way), you will spend 10 hours traveling; depart Milan by 06:20 to enjoy 4 to 5 hours in St. Moritz before heading back.
How much does a taxi or private transfer from Milan to St. Moritz cost?
A pre-booked private transfer or cross-border taxi generally costs between €400 and €650 one-way depending on vehicle size (sedan vs. luxury van) and departure point (city center vs. Malpensa Airport). Always confirm fixed pricing in advance to avoid unexpected mountain pass surcharges.
Is there a high-speed direct train from Milan to Switzerland?
While EuroCity high-speed trains operate directly from Milan to Swiss cities like Lugano, Zurich, and Geneva via the Gotthard and Simplon routes, there are no direct high-speed trains to St. Moritz. Reaching St. Moritz requires narrow-gauge mountain trains via Tirano or bus connections via Chiavenna.
Conclusion
Whether you choose the rapid, flexible drive past Lake Como and over the Maloja Pass, or opt for the world-renowned rail ascent over the Bernina Pass with the Rhaetian Railway, traveling from Milan to St. Moritz is far more than a simple transfer. By choosing the route that aligns with your timeline, budget, and seasonal preferences, you can transform this cross-border alpine crossing into one of the most memorable highlights of your European itinerary.
Sources
- Rhätische Bahn (RhB) — Official timetables, Bernina Express seat reservations, and alpine route tariffs.
- Swiss Federal Railways (SBB CFF FFS) — Swiss national rail schedules, pass validity rules, and station connections.
- Trenord Official Portal — Regional train schedules and fares for Milano Centrale to Tirano and Chiavenna.
- PostAuto Switzerland — Route 4 (Chiavenna – Maloja – St. Moritz) timetables and mountain transit network info.
- Tiefbauamt Graubünden — Official road conditions and winter pass opening status for Maloja and Bernina.



