There are 7 ways to get from Perugia to Locarno by train (Trenitalia), bus, car, train, 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 Perugia to Firenze S.M.N.train
- Take the train from Firenze S.M.N. to Milano Centraletrain Fr
- Take the train from Milano Centrale to Locarnotrain
7h 4mCHF 76–152Bus, train
cheapest- Take the bus from Perugia Train Station Bus Stop to Milanbus Itabus
- Take the train from Milano Centrale to Locarnotrain Re80
8h 53mCHF 30–50Bus
- Take the bus from Perugia to Florencebus FlixBus N504
- Take the bus from Florence Villa Constanza Bus Station to Bellinzonabus
7h 44mCHF 79–113Drive 555.1 km
- Drive from Perugia to Locarnocar 555.1 km
5h 37mCHF 99–142Train to Fiumicino International Airport, fly to Milan Linate Airport, train
- Take the train from Perugia to Roma Terminitrain
- Fly from Fiumicino International Airport (FCO) to Milan Linate Airport (LIN)plane FCO - LIN
- Take the train from Monza to Locarnotrain
9h 6mCHF 81–211Train to Florence Peretola Airport, fly to Zurich Airport, train
- Take the train from Perugia to Firenze S.M.N.train
- Fly from Florence Peretola Airport (FLR) to Zurich Airport (ZRH)plane FLR - ZRH
- Take the train from Zürich HB to Bellinzonatrain
8h 38mCHF 161–410Train to Raffaello Sanzio Airport, fly to Milan Linate Airport, train
- Take the train from Foligno to Jesitrain
- Fly from Raffaello Sanzio Airport (AOI) to Milan Linate Airport (LIN)plane AOI - LIN
- Take the train from Monza to Locarnotrain
8h 41mCHF 113–353
Perugia to Locarno by train
Comparing Your Travel Options
The cheapest way to get from Perugia to Locarno is to bus and train which costs SFr 29 - SFr 50 and takes 8h 53m.
The fastest way to get from Perugia to Locarno is to drive which takes 5h 37m and costs SFr 95 - SFr 150.
No, there is no direct bus from Perugia to Locarno. However, there are services departing from Perugia and arriving at Locarno, Debarcadero via Florence Villa Constanza Bus Station and Bellinzona, Piazza Orico. The journey, including transfers, takes approximately 7h 44m.
No, there is no direct train from Perugia to Locarno. However, there are services departing from Perugia and arriving at Locarno via Firenze S.M.N. and Milano Centrale. The journey, including transfers, takes approximately 7h 4m.
The distance between Perugia and Locarno is 566 km. The road distance is 555.1 km.
The best way to get from Perugia to Locarno without a car is to train which takes 7h 4m and costs SFr 75 - SFr 160.
It takes approximately 7h 4m to get from Perugia to Locarno, including transfers.
Perugia to Locarno bus services, operated by FlixBus, depart from Perugia station.
Perugia to Locarno train services, operated by Trenitalia, depart from Perugia station.
The best way to get from Perugia to Locarno is to train which takes 7h 4m and costs SFr 75 - SFr 160. Alternatively, you can bus, which costs SFr 75 - SFr 120 and takes 7h 44m.
What companies run services between Perugia, Italy and Locarno, Switzerland?
You can take a train from Perugia to Locarno via Firenze S.M.N. and Milano Centrale in around 7h 4m. Alternatively, you can take a bus from Perugia to Locarno, Debarcadero via Florence Villa Constanza Bus Station, Bellinzona, and Bellinzona, Piazza Orico in around 7h 44m.
- Website
- ita-airways.com
Flights from Fiumicino International Airport to Milan Linate Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- CHF 50–160
Flights from Florence Peretola Airport to Zurich Airport
- Ave. Duration
- 1h 16m
- When
- Every day
- Estimated price
- CHF 75–330
- Website
- lufthansa.com
Flights from Fiumicino International Airport to Milan Linate Airport
- Ave. Duration
- 1h 10m
- When
- Every day
- Estimated price
- CHF 50–160
Flights from Florence Peretola Airport to Zurich Airport via Munich
- Ave. Duration
- 3h 15m
- When
- Every day
- Estimated price
- CHF 150–500
Flights from Florence Peretola Airport to Zurich Airport via Frankfurt
- Ave. Duration
- 3h 25m
- When
- Every day
- Estimated price
- CHF 150–550
- Website
- swiss.com
Flights from Florence Peretola Airport to Zurich Airport
- Ave. Duration
- 1h 16m
- When
- Every day
- Estimated price
- CHF 75–330
- Website
- airdolomiti.it
Flights from Florence Peretola Airport to Zurich Airport via Munich
- Ave. Duration
- 3h 20m
- When
- Saturday
- Estimated price
- CHF 150–500
Flights from Florence Peretola Airport to Zurich Airport via Frankfurt
- Ave. Duration
- 3h 25m
- When
- Every day
- Estimated price
- CHF 150–550
- Website
- dat.dk
Flights from Raffaello Sanzio Airport to Milan Linate Airport
- Ave. Duration
- 1h 17m
- When
- Monday to Friday
- Estimated price
- CHF 90–110
- Website
- aeroitalia.com
Flights from Fiumicino International Airport to Milan Linate Airport via Olbia
- Ave. Duration
- 3h 5m
- When
- Every day
- Estimated price
- CHF 120–210
- Phone
- +39.06.5210550
- Website
- Trenitalia
Train from Perugia to Firenze S.M.N.
- Ave. Duration
- 2h 7m
- Frequency
- Hourly
- Estimated price
- CHF 16–23
- Website
- Trenitalia
Train from Perugia to Roma Termini
- Ave. Duration
- 3h 5m
- Frequency
- Every 2 hours
- Estimated price
- CHF 20–29
- Website
- Trenitalia
Train from Perugia to Firenze S.M.N.
- Ave. Duration
- 2h 7m
- Frequency
- Hourly
- Estimated price
- CHF 16–23
- Website
- Trenitalia
Train from Foligno to Jesi
- Ave. Duration
- 1h 18m
- Frequency
- Hourly
- Estimated price
- CHF 11–16
- Website
- Trenitalia
- Phone
- +39 06 68475475
- Website
- Trenitalia Intercity
Train from Perugia to Firenze S.M.N.
- Ave. Duration
- 1h 29m
- Frequency
- Twice daily
- Estimated price
- CHF 15–28
- Website
- Trenitalia Intercity
Train from Firenze S.M.N. to Milano Centrale
- Ave. Duration
- 3h 50m
- Frequency
- Twice daily
- Estimated price
- CHF 30–55
- Website
- Trenitalia Intercity
Train from Perugia to Roma Termini
- Ave. Duration
- 2h 20m
- Frequency
- Twice daily
- Estimated price
- CHF 19–35
- Website
- Trenitalia Intercity
Train from Perugia to Firenze S.M.N.
- Ave. Duration
- 1h 29m
- Frequency
- Twice daily
- Estimated price
- CHF 15–28
- Website
- Trenitalia Intercity
Train from Foligno to Jesi
- Ave. Duration
- 1h 20m
- Frequency
- 4 times a day
- Estimated price
- CHF 10–19
- Website
- Trenitalia Intercity
- Phone
- +39 06 5210550
- Website
- Trenitalia Frecce
Train from Perugia to Firenze S.M.N.
- Ave. Duration
- 1h 37m
- Frequency
- Twice daily
- Estimated price
- CHF 19–35
- Website
- Trenitalia Frecce
Train from Firenze S.M.N. to Milano Centrale
- Ave. Duration
- 1h 55m
- Frequency
- Hourly
- Estimated price
- CHF 35–65
- Website
- Trenitalia Frecce
Train from Perugia to Firenze S.M.N.
- Ave. Duration
- 1h 37m
- Frequency
- Twice daily
- Estimated price
- CHF 19–35
- Website
- Trenitalia Frecce
Train from Foligno to Jesi
- Ave. Duration
- 1h 10m
- Frequency
- Twice daily
- Estimated price
- CHF 13–22
- Website
- Trenitalia Frecce
- Phone
- +39 06 8937 1892
- Website
- Italo Treno
Train from Firenze S.M.N. to Milano Centrale
- Ave. Duration
- 2h 15m
- Frequency
- Once daily
- Estimated price
- CHF 30–55
- Website
- Italo Treno
Train from Milano Centrale to Locarno
- Ave. Duration
- 1h 55m
- Frequency
- Hourly
- Estimated price
- CHF 30–55
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Zürich HB to Bellinzona
- Ave. Duration
- 1h 39m
- Frequency
- Hourly
- Estimated price
- CHF 45–75
- Website
- Swiss Federal Railways (SBB CFF FFS)
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- Trenord
Train from Monza to Locarno
- Ave. Duration
- 1h 45m
- Frequency
- Hourly
- Estimated price
- CHF 5–7
- Website
- Trenord
Train from Milano Centrale to Locarno
- Ave. Duration
- 1h 55m
- Frequency
- Hourly
- Estimated price
- CHF 7–10
- Website
- Trenord
Train from Monza to Locarno
- Ave. Duration
- 1h 45m
- Frequency
- Hourly
- Estimated price
- CHF 5–7
- Website
- Trenord
- Phone
- +41 58 580 70 70
- Website
- Schweizerische Südostbahn AG
Train from Zürich HB to Bellinzona
- Ave. Duration
- 2h 55m
- Frequency
- Every 3 hours
- Estimated price
- CHF 45–70
- Schedules at
- Schweizerische Südostbahn AG
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- Flixbus
Bus from Perugia to Florence
- Ave. Duration
- 1h 50m
- Frequency
- Twice daily
- Estimated price
- CHF 12–19
- Website
- Flixbus
- Phone
- +39 0362 185 0590
- [email protected]
- Website
- Onebus
Bus from Florence Villa Constanza Bus Station to Bellinzona
- Ave. Duration
- 3h 32m
- Frequency
- Once a week
- Estimated price
- CHF 60–85
- Website
- Onebus
- Phone
- +39 06 88 93 82 32
- Website
- Itabus S.p.A.
Bus from Perugia Train Station Bus Stop to Milan
- Ave. Duration
- 5h 55m
- Frequency
- Once daily
- Estimated price
- CHF 20–40
- Website
- Itabus S.p.A.
Want to know more about travelling around Switzerland
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
Italian Lakes: Getting around by train
Read the travel guide
5 incredible day trips from Florence by train
Read the travel guide
Italy Travel Guides
Read the travel guide
Booking & Getting There
Perugia to Locarno bus services, operated by FlixBus, arrive at Florence station.
Perugia to Locarno train services, operated by Trenitalia, arrive at Firenze S.M.N. station.
Yes, the driving distance between Perugia to Locarno is 555 km. It takes approximately 5h 37m to drive from Perugia to Locarno.
Book your Perugia to Locarno train tickets online with Omio.
There are 2615+ hotels available in Locarno.










































