You’re in Milan. You have one free day. You want to see Switzerland without wasting half of it on trains or blowing your budget on a single fondue. Can it be done?
Yes. I’ve done it seven times, and I learned the hard way which routes are worth the 5 AM alarm and which ones leave you stranded in a tunnel for two hours. Here’s the shortlist.
1. Lugano — The Obvious One (But Only If You Do It Right)
Lugano is the closest Swiss city to Milan. The train from Milano Centrale to Lugano takes 1 hour 20 minutes on the EC (EuroCity) trains. Cost: about €25-35 each way if you book a few days ahead. Show up at the station and buy same-day? You’ll pay €50+.
Most tourists walk from the station to Lake Lugano, snap a photo of the Monte San Salvatore, eat a €30 plate of pasta, and go home. That’s a waste.
What I actually do: Get off at Lugano station, walk 5 minutes to the funicular for Monte Brè. Round-trip ticket is CHF 32. The top gives you a 360° view of the lake, the Alps, and on a clear day, Milan’s cathedral in the distance. Then take the 2 PM boat across the lake to Gandria — a tiny fishing village with no cars. The boat costs CHF 8. Have a beer at a lakeside bar for CHF 6. Back in Milan by 8 PM.
Failure mode: Don’t go on a Monday. Half the restaurants in Gandria close. I learned this the hard way and ate a sad sandwich from a vending machine.
Train Tip That Saves You Money
Buy a Ticino Ticket when you arrive at Lugano station. It’s free with any hotel booking in the region, but if you’re just day-tripping, ask at the tourist office. It gives you free buses, boats, and some funiculars in the Lugano area. Saved me about CHF 25.
2. Bernina Express — The Most Scenic Train Ride You Can Do in a Day
The Bernina Express runs from Tirano (Italy) to St. Moritz (Switzerland). It crosses the Alps at 2,253 meters without any cogwheel assistance — just pure rail engineering from 1910. The whole journey takes 4 hours one way.
You need to start early. Take the 6:20 AM regional train from Milano Centrale to Tirano (2.5 hours, €15-20). The Bernina Express departs Tirano at 8:30 AM or 10:30 AM. Book the panoramic car in advance — it costs €45-55 and sells out weeks ahead in summer.
What you see: The Brusio spiral viaduct (a 360° loop that gains altitude without steep grades), the Lago Bianco (a turquoise lake at the top of the pass), and glaciers that come right up to the tracks. The train slows down at the best photo spots.
Honest verdict: This is the best day trip from Milan. Full stop. But only if you’re comfortable with 8+ hours on trains. The scenery is worth it. Bring snacks — the dining car is expensive (CHF 12 for a dry sandwich).
When NOT to Take the Bernina Express
If you’re prone to motion sickness. The spiral viaduct and the switchbacks near Alp Grüm are no joke. I saw a woman throw up into her handbag. Also, skip it if you have less than 12 hours — you need the full day.
3. Zermatt — Too Far for a Day Trip (But I Did It Anyway)
Everyone asks about Zermatt. The Matterhorn is iconic. Here’s the truth: it’s a 3.5-hour train ride from Milan each way. You change trains in Visp. The total cost round-trip is €80-120. You’ll have about 4 hours in Zermatt before you need to catch the last train back.
I don’t recommend this for most people. The train ride through the Rhône valley is nice, but not Bernina-Express nice. And Zermatt itself is expensive — a coffee costs CHF 5, a basic lunch is CHF 25. You’ll spend more time commuting than enjoying.
If you absolutely must go: Take the 6:00 AM EC from Milano Centrale to Visp (2h 15m), then the Matterhorn Gotthard Bahn to Zermatt (1h 10m). Arrive at 10:30 AM. Walk to the Gornergrat railway station, take that train up to the viewpoint (CHF 47 round-trip, 33 minutes). You’ll see the Matterhorn from the classic angle. Eat a quick lunch at the top station restaurant (the goulash soup is decent for CHF 15). Then head back down. Train from Zermatt at 3:30 PM, back in Milan by 8 PM.
Better alternative: Skip Zermatt and do the Centovalli Railway instead. Same travel time, half the cost, equally stunning.
4. Centovalli Railway — The Underrated Gem (Locarno + Domodossola)
The Centovalli Railway runs from Domodossola (Italy) to Locarno (Switzerland). It’s 52 kilometers of bridges, tunnels, and valleys. The train takes about 2 hours and costs €20-25.
How to do it: Take the 7:30 AM regional train from Milano Centrale to Domodossola (1h 20m, €12-15). The Centovalli train departs Domodossola at 9:30 AM. Sit on the right side for the best views of the Melezza River gorge. Arrive in Locarno at 11:30 AM.
Locarno is a small city on Lake Maggiore. It’s warmer than Lugano in summer. Walk the old town, eat at a grotto (traditional Ticino restaurant) — try the polenta with braised beef at Grotto Broggini for about CHF 20. Then take the funicular up to Madonna del Sasso, a monastery with a panoramic terrace. Free to enter.
Train back: The 4:00 PM Centovalli train gets you to Domodossola by 6:00 PM, then the 6:30 PM EC to Milan arrives at 7:50 PM.
Why this beats Lugano: The train ride itself is the attraction. Lugano’s train approach is just a tunnel. Centovalli gives you 2 hours of non-stop scenery. Plus Locarno is less crowded.
5. Lake Como (Italian Side) — Quick Reality Check
I know. Lake Como is in Italy, not Switzerland. But it’s on the border, and most people visiting Milan assume it’s a Swiss-level experience. It’s not. But it’s worth mentioning because it’s a common alternative.
The train from Milan to Varenna-Esino (the best town on the lake) takes 1 hour. Cost: €8-12. From Varenna, you take the ferry to Bellagio (15 minutes, €4.60). Bellagio is beautiful but packed in summer. I waited 40 minutes for a table at a lakeside café in August.
What I’d do instead: If you want a Swiss lake experience without crossing the border, skip Bellagio and go to Menzio. It’s a tiny village on the western shore of Lake Como, reachable only by boat from Como city. No cars, one restaurant, and the water is clean enough to swim in. The boat from Como costs €6 and runs hourly. I spent an entire afternoon there reading a book and swimming. Cost me €12 total.
6. St. Moritz — Only for Skiers in Winter
St. Moritz is the end point of the Bernina Express. As a day trip from Milan, it only makes sense if you’re going to ski or snowboard. The town itself is expensive and a bit stuffy — think CHF 8 for a cappuccino.
In summer: Don’t bother. The lake is nice but you’ve seen better on the Bernina Express route. The hiking trails are good but you don’t have enough time to do them justice.
In winter: The train from Milan to St. Moritz takes 3.5 hours. You need to leave by 5 AM to get there by 8:30 AM, ski for 4-5 hours, then catch the 4:00 PM train back. The ski pass costs CHF 80-100 for a half-day. Rentals are another CHF 40-50. This is for hardcore skiers only.
Better winter option: Go to Madesimo instead. It’s in Italy, 2 hours from Milan by bus, ski pass is €45, and the slopes are less crowded. Not Switzerland, but the snow is just as good.
7. Quick Comparison Table — Which Trip for Which Person
| Trip | Total Travel Time (round trip) | Cost (train + activities) | Best For | My Rating |
|---|---|---|---|---|
| Lugano | 3 hours | €60-80 | First-timers, families, relaxed day | 7/10 |
| Bernina Express | 8 hours | €80-120 | Scenery lovers, train enthusiasts, photographers | 9/10 |
| Zermatt | 7 hours | €130-180 | Matterhorn bucket list, hardcore skiers | 5/10 |
| Centovalli Railway | 5 hours | €50-70 | Off-the-beaten-path, budget travelers | 8/10 |
| Lake Como (Varenna) | 2 hours | €20-40 | Quick escape, swimming, romance | 6/10 |
| St. Moritz (winter) | 7 hours | €150-200 | Skiers only | 4/10 |
One Final Tip That Saves You Headaches
Download the SBB Mobile app and the Trenitalia app before you go. SBB covers all Swiss trains, Trenitalia covers Italian ones. You can buy tickets on either app, but note that cross-border trains (like Milan to Lugano) are sold by both — check prices on both apps. I’ve saved €15 by buying the Italian leg on Trenitalia and the Swiss leg on SBB separately.
Also, bring a Swiss power adapter. Switzerland uses a different plug (type J) than Italy (type F/L). Most trains have USB ports now, but the stations don’t. I forgot mine once and spent €20 on a cheap one at a kiosk in Lugano. Don’t be me.
