There are 6 ways to get from Balsthal to Milan by train, 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 Olten to Luganotrain Ic21 / ...
- Take the train from Como S.Giovanni to Milano Porta Garibalditrain S11
6h 6m€81–322Bus
cheapest- Take the bus from Olten Station to Aresebus
10h 9m€48–73Train, bus
- Take the train from Olten to Luzerntrain Ir26
- Take the bus from Lucerne Landenbergstrasse to Milano, Autostazione Lampugnanobus RegioJet 22
6h 36m€51–107Drive 308.8 km
- Drive from Balsthal to Milancar 308.8 km
3h 20m€53–77Train, fly
- Take the train from Oensingen to Zürich HBtrain
- Fly from Zurich Airport (ZRH) to Milano Malpensa Airport (MXP)plane ZRH - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain
4h 43m€102–285Train via Zurich
- Take the train from Oensingen to Zürich HBtrain Ic5
- Take the train from Zürich HB to Como S. Giovannitrain Ec
- Take the train from Como S.Giovanni to Milano Porta Garibalditrain S11
6h 25m€99–339
Balsthal to Milan by train
Questions & Answers
The cheapest way to get from Balsthal to Milan is to bus which costs €45 - €75 and takes 10h 9m.
The fastest way to get from Balsthal to Milan is to drive which takes 3h 20m and costs €50 - €80.
No, there is no direct train from Balsthal to Milan. However, there are services departing from Balsthal and arriving at Milano Porta Garibaldi via Oensingen, Olten, Lugano and Como S.Giovanni. The journey, including transfers, takes approximately 6h 6m.
The distance between Balsthal and Milan is 313 km. The road distance is 308.8 km.
The best way to get from Balsthal to Milan without a car is to train which takes 6h 6m and costs €80 - €330.
It takes approximately 6h 6m to get from Balsthal to Milan, including transfers.
Balsthal to Milan train services, operated by Swiss Federal Railways (SBB CFF FFS), depart from Olten station.
The best way to get from Balsthal to Milan is to train which takes 6h 6m and costs €80 - €330. Alternatively, you can bus, which costs €45 - €75 and takes 10h 9m.
Balsthal to Milan train services, operated by Swiss Federal Railways (SBB CFF FFS), arrive at Lugano station.
Yes, the driving distance between Balsthal to Milan is 309 km. It takes approximately 3h 20m to drive from Balsthal to Milan.
What companies run services between Balsthal, Switzerland and Milan, Italy?
You can take a train from Balsthal to Milano Porta Garibaldi via Oensingen, Olten, Lugano, and Como S.Giovanni in around 6h 6m. Alternatively, Gruppo Di Maio operates a bus from Olten Station to Arese twice a week. Tickets cost €28–40 and the journey takes 6h 40m.
- Website
- swiss.com
Flights from Zurich Airport to Milano Malpensa Airport
- Ave. Duration
- 55 min
- When
- Every day
- Estimated price
- €70–140
- Website
- ethiopianairlines.com
Flights from Zurich Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- €55–200
- Phone
- +41 848 446 688
- Website
- sbb.ch
Train from Olten to Lugano
- Ave. Duration
- 2h 28m
- Frequency
- Every 3 hours
- Estimated price
- €70–220
- Website
- https://www.sbb.ch/en
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 2m
- Frequency
- Once daily
- Estimated price
- €16–50
- Website
- https://www.sbb.ch/en
Train from Olten to Luzern
- Ave. Duration
- 49 min
- Frequency
- Every 30 minutes
- Estimated price
- €18–55
- Website
- https://www.sbb.ch/en
Train from Oensingen to Zürich HB
- Ave. Duration
- 45 min
- Frequency
- Hourly
- Estimated price
- €24–75
- Website
- https://www.sbb.ch/en
Train from Zürich HB to Como S. Giovanni
- Ave. Duration
- 2h 35m
- Frequency
- Every 2 hours
- Estimated price
- €70–210
- Website
- https://www.sbb.ch/en
- Phone
- +39 02 7249 4494
- my-link@trenord.it
- Website
- trenord.it
Train from Como S.Giovanni to Milano Porta Garibaldi
- Ave. Duration
- 1h 1m
- Frequency
- Hourly
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 44 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- https://www.trenord.it/en/
- Phone
- +41 58 580 70 70
- Website
- sob.ch
Train from Olten to Luzern
- Ave. Duration
- 35 min
- Frequency
- Every 3 hours
- Estimated price
- €22–35
- Schedules at
- sob.ch
- Phone
- +420 222 222 221
- info@regiojet.cz
- Website
- regiojet.com
Bus from Lucerne Landenbergstrasse to Milano, Autostazione Lampugnano
- Ave. Duration
- 3h 35m
- Frequency
- Once a week
- Estimated price
- €16–24
- Website
- https://regiojet.com/
- Phone
- +39 0827 34 117
- info@gruppodimaio.it
- Website
- gruppodimaio.it
Bus from Olten Station to Arese
- Ave. Duration
- 6h 40m
- Frequency
- Twice a week
- Estimated price
- €28–40
- Schedules at
- gruppodimaio.it
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
Heading to Europe? Read this before you buy a Eurail Pass
Read the travel guide
Italian Lakes: Getting around by train
Read the travel guide
More Questions & Answers
Book your Balsthal to Milan train tickets online with Omio.
There are 14876+ hotels available in Milan.


















