Travel Information
Compare train and coach for Locarno to Milan
Omio recommends booking the train as it is the most popular option from Locarno to Milan among Omio's users. If you are prioritising price take the coach with prices starting from £7. For those with little time consider booking a coach which can get you there in 1h 40m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.0 - 0.1kg. The ticket price range depends on the travel mode: a coach costs an average of £7, and a train costs an average of £9.
Distance: 84 km
Compare train with
Most popular Train | Coach |
|---|---|
£12 Average Price | £9 Average Price Cheapest |
2h 20m Average total duration 1h 50m Onboard + 30m Additional time* | 2h 10m Average total duration Fastest 1h 40m Onboard + 30m Additional time* |
0.0 - 0.1kg CO2 emissions Lowest | 0.1 - 0.2kg CO2 emissions |
![]() Most popular train company | ![]() Most popular bus company |
Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Travel optionsfrom Locarno to Milan
How to get to Milan from Locarno by train, bus, flight or ferry.
Our recommendation
The best way to travel from Locarno to Milan is by taking a coach because it’s the best combination of price and speed.
(Prague -> Milan)11:401h20Lugano, Via Ciani13:00Milano, Autostazione Lampugnano£81One-way0 changes
Cheapest
(Prague -> Milan)11:401h20Lugano, Via Ciani13:00Milano, Autostazione Lampugnano£81One-way0 changes
Fastest
7:101h10Agno, Lugano Airport (Parcheggio sosta breve)8:20Milano£1531One-way0 changes
Other options
S30 TRENORD 25361 · Regionale 102098:281h52Pino-Tronzano10:20Milan Porta Garibaldi£91One-way1 change
S30 TRENORD 25377 · Regionale 1023516:281h52Pino-Tronzano18:20Milan Porta Garibaldi£91One-way1 change
Autobus TRENORD 7369A · S30 TRENORD 25329 · Regionale 1020712:182h02Pino-Tronzano14:20Milan Porta Garibaldi£91One-way2 changes
10:001h25Agno, Lugano Airport (Parcheggio sosta breve)11:25Milano£1011One-way0 changes
2:001h30Agno, Lugano Airport (Parcheggio sosta breve)3:30Milano£1011One-way0 changes
0:001h30Agno, Lugano Airport (Parcheggio sosta breve)1:30Milano£1011One-way0 changes
Find all the dates and times for this journey by train, bus, flight, and ferry .
Compare prices and tickets Prices for trains, coaches, flights and ferries
Compare train and coach prices over the next three weeks. See the best deals at a glance, find the lowest fares, and choose the option that fits your budget.
15 Aug
16 Aug
17 Aug
18 Aug
19 Aug
20 Aug
21 Aug
22 Aug
23 Aug
24 Aug
25 Aug
26 Aug
27 Aug
28 Aug
29 Aug
30 Aug
31 Aug
01 Sept
02 Sept
03 Sept
04 Sept
More than 1,000 travel companies trust us to sell their tickets all in one place.
FAQs: Locarno to Milan
Travel to Milan easily. Whether you want fast, cheap or something entirely different, our travel experts have collected everything you need to know so you can find the best option from Locarno to Milan.

This is compared to other travel options from Locarno to Milan:
A coach is £3 less than a train for this route with tickets for a train from Locarno to Milan costing on average £12.
Other travel options to Milan take longer:
Train takes on average 1h 50m.
- Around 12 coaches per day.
- Around 7 trains per day.
However, we recommend checking specific travel dates for your route between Locarno and Milan as scheduled services by train and coach can vary by season or day of the week.
- Trains mostly depart from Pino-Tronzano and arrive in Milan Porta Garibaldi.
- Coaches mostly depart from Lugano, Via Ciani and arrive in Milano, Autostazione Lampugnano.
- Travel with Regionale, SBB, Swiss Federal Railways (SBB CFF FFS) to go to Milan by train.
- Travel with FlixBus, BlaBlaCar, Calanda Viaggi to go to Milan by coach.
- 0 direct trains per day with Swiss Federal Railways (SBB CFF FFS).
- 12 direct coaches per day with FlixBus, BlaBlaCar, Calanda Viaggi.
Travelling from Locarno to Milan: related information
Here are some other resources that might have the information you need

