There are 10 ways to get from Madrid to Lugano by plane, train, train (Renfe, Ouigo, Trenitalia), bus, car, or train (Renfe, Trenitalia)
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Fly to Milano Malpensa Airport, train
best- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Milano Malpensa Airport (MXP)plane MAD - MXP
- Take the train from Malpensa Aeroporto T1 to Luganotrain
6h 40mCHF 27–168Train via Barcelona
- Take the train from Madrid-Puerta de Atocha-Almudena Grandes to Barcelona-Santstrain Ave
- Take the train from Barcelona-Sants to Lyon Part Dieutrain
- Take the train from Lyon Part Dieu to Milano Centraletrain Fr
- Take the train from Milano Centrale to Luganotrain
16h 43mCHF 189–360Bus
- Take the bus from Madrid to Milanbus FlixBus N1138
- Take the bus from Milano, Autostazione Lampugnano to Luganobus BlaBlaCar Bus
25h 15mCHF 139–206Drive 1,513.5 km
- Drive from Madrid to Luganocar 1,513.5 km
16h 52mCHF 253–365Fly to Milan Linate Airport, train
- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Milan Linate Airport (LIN)plane MAD - LIN
- Take the train from Monza to Luganotrain
6h 56mCHF 72–211Fly to Zurich Airport, train
- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Zurich Airport (ZRH)plane MAD - ZRH
- Take the train from Zürich HB to Luganotrain
7h 8mCHF 129–344Fly to Il Caravaggio International Airport, bus, train
- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Il Caravaggio International Airport (BGY)plane MAD - BGY
- Take the bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoiabus
- Take the train from Milano Centrale to Luganotrain
7h 28mCHF 60–269Fly to Turin Caselle Airport, train
- Fly from Adolfo Suárez Madrid–Barajas Airport (MAD) to Turin Caselle Airport (TRN)plane MAD - TRN
- Take the train from Torino Porta di Susa to Milano Centraletrain
- Take the train from Milano Centrale to Luganotrain
8h 32mCHF 68–226Train
- Take the train from Madrid-Puerta de Atocha-Almudena Grandes to Marseille St Charlestrain
- Take the train from Marseille-Saint-Charles to Nice-Villetrain
- Take the train from Ventimiglia to Milano Centraletrain Ic
- Take the train from Milano Centrale to Luganotrain
19h 51mCHF 246–378Bus via Marseille
- Take the bus from Estación Sur de Autobuses to Marseille - Saint-Charles Bus Stationbus
- Take the bus from Marseille - Saint-Charles Bus Station to Milano, Autostazione Lampugnanobus
- Take the bus from Milano, Autostazione Lampugnano to Luganobus
28h 44mCHF 127–211
Madrid to Lugano by train
Comparing Your Travel Options
The cheapest way to get from Madrid to Lugano is to fly and train which costs SFr 26 - SFr 170 and takes 6h 40m.
The fastest way to get from Madrid to Lugano is to fly and train which takes 6h 40m and costs SFr 26 - SFr 170.
No, there is no direct bus from Madrid to Lugano. However, there are services departing from Madrid and arriving at Lugano via Milano, Autostazione Lampugnano. The journey, including transfers, takes approximately 25h 15m.
No, there is no direct train from Madrid to Lugano. However, there are services departing from Madrid-Puerta de Atocha-Almudena Grandes and arriving at Lugano via Barcelona-Sants, Lyon Part Dieu and Milano Centrale. The journey, including transfers, takes approximately 16h 43m.
The distance between Madrid and Lugano is 1236 km. The road distance is 1513.5 km.
The best way to get from Madrid to Lugano without a car is to train via Barcelona which takes 16h 43m and costs SFr 180 - SFr 360.
It takes approximately 6h 40m to get from Madrid to Lugano, including transfers.
Madrid to Lugano bus services, operated by FlixBus, depart from Madrid station.
Madrid to Lugano train services, operated by Renfe AVE, depart from Madrid-Puerta de Atocha-Almudena Grandes station.
The best way to get from Madrid to Lugano is to train via Barcelona which takes 16h 43m and costs SFr 180 - SFr 360. Alternatively, you can bus, which costs SFr 130 - SFr 210 and takes 25h 15m.
What companies run services between Madrid, Spain and Lugano, Switzerland?
You can take a train from Madrid-Puerta de Atocha-Almudena Grandes to Lugano via Barcelona-Sants, Lyon Part Dieu, and Milano Centrale in around 16h 43m. Alternatively, you can take a bus from Madrid to Lugano via Milano, Autostazione Lampugnano in around 25h 15m.
- Website
- ryanair.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 15m
- When
- Tuesday, Sunday, Thursday, Wednesday, and Saturday
- Estimated price
- CHF 35–150
Flights from Adolfo Suárez Madrid–Barajas Airport to Il Caravaggio International Airport
- Ave. Duration
- 2h 20m
- When
- Every day
- Estimated price
- CHF 45–230
Flights from Adolfo Suárez Madrid–Barajas Airport to Il Caravaggio International Airport via Palma Mallorca
- Ave. Duration
- 5h 20m
- When
- Friday
- Estimated price
- CHF 45–230
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport
- Ave. Duration
- 2h 5m
- When
- Every day
- Estimated price
- CHF 45–170
- Website
- iberia.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 15m
- When
- Every day
- Estimated price
- CHF 35–200
Flights from Adolfo Suárez Madrid–Barajas Airport to Milano Malpensa Airport via Bilbao
- Ave. Duration
- 4h 35m
- When
- Tuesday and Sunday
- Estimated price
- CHF 90–170
Flights from Adolfo Suárez Madrid–Barajas Airport to Milan Linate Airport
- Ave. Duration
- 2h 10m
- When
- Every day
- Estimated price
- CHF 50–160
Flights from Adolfo Suárez Madrid–Barajas Airport to Zurich Airport
- Ave. Duration
- 2h 21m
- When
- Every day
- Estimated price
- CHF 60–170
Flights from Adolfo Suárez Madrid–Barajas Airport to Zurich Airport via Barcelona
- Ave. Duration
- 4h 52m
- When
- Every day
- Estimated price
- CHF 70–190
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport
- Ave. Duration
- 2h 10m
- When
- Every day
- Estimated price
- CHF 55–120
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport via Barcelona
- Ave. Duration
- 4h 7m
- When
- Monday, Tuesday, Friday, Thursday, and Saturday
- Estimated price
- CHF 65–170
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport via Bilbao
- Ave. Duration
- 5h
- When
- Thursday
- Estimated price
- CHF 65–170
- Website
- vueling.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 15m
- When
- Every day
- Estimated price
- CHF 35–200
Flights from Adolfo Suárez Madrid–Barajas Airport to Milano Malpensa Airport via Bilbao
- Ave. Duration
- 4h 10m
- When
- Tuesday
- Estimated price
- CHF 90–170
Flights from Adolfo Suárez Madrid–Barajas Airport to Milan Linate Airport
- Ave. Duration
- 2h 10m
- When
- Every day
- Estimated price
- CHF 50–160
Flights from Adolfo Suárez Madrid–Barajas Airport to Zurich Airport
- Ave. Duration
- 2h 22m
- When
- Every day
- Estimated price
- CHF 60–170
Flights from Adolfo Suárez Madrid–Barajas Airport to Zurich Airport via Barcelona
- Ave. Duration
- 4h 52m
- When
- Every day
- Estimated price
- CHF 70–190
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport
- Ave. Duration
- 2h 10m
- When
- Every day
- Estimated price
- CHF 55–120
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport via Barcelona
- Ave. Duration
- 4h 7m
- When
- Monday, Tuesday, Friday, Thursday, and Saturday
- Estimated price
- CHF 65–170
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport via Bilbao
- Ave. Duration
- 5h
- When
- Thursday
- Estimated price
- CHF 65–170
- Website
- aireuropa.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 11m
- When
- Every day
- Estimated price
- CHF 45–180
Flights from Adolfo Suárez Madrid–Barajas Airport to Zurich Airport
- Ave. Duration
- 2h 20m
- When
- Every day
- Estimated price
- CHF 60–190
- Website
- flyulendo.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Milano Malpensa Airport
- Ave. Duration
- 2h 15m
- When
- Every day
- Estimated price
- CHF 18–140
Flights from Adolfo Suárez Madrid–Barajas Airport to Turin Caselle Airport
- Ave. Duration
- 2h 10m
- When
- Monday, Wednesday, and Friday
- Estimated price
- CHF 20–170
- Website
- swiss.com
Flights from Adolfo Suárez Madrid–Barajas Airport to Zurich Airport
- Ave. Duration
- 2h 17m
- When
- Every day
- Estimated price
- CHF 70–220
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- Trenord
Train from Malpensa Aeroporto T1 to Lugano
- Ave. Duration
- 1h 35m
- Frequency
- Hourly
- Estimated price
- CHF 5–7
- Website
- Trenord
Train from Monza to Lugano
- Ave. Duration
- 1h 5m
- Frequency
- Hourly
- Estimated price
- CHF 3–5
- Website
- Trenord
Train from Milano Centrale to Lugano
- Ave. Duration
- 1h 15m
- Frequency
- Hourly
- Estimated price
- CHF 5–7
- Website
- Trenord
Train from Milano Centrale to Lugano
- Ave. Duration
- 1h 15m
- Frequency
- Hourly
- Estimated price
- CHF 5–7
- Website
- Trenord
- Phone
- +34 91 232 03 20
- Website
- Renfe AVE
Train from Madrid-Puerta de Atocha-Almudena Grandes to Barcelona-Sants
- Ave. Duration
- 3h 2m
- Frequency
- Hourly
- Estimated price
- CHF 75–140
- Website
- Renfe AVE
- Phone
- +34 900 926 851
- [email protected]
- Website
- Iryo
Train from Madrid-Puerta de Atocha-Almudena Grandes to Barcelona-Sants
- Ave. Duration
- 3h 24m
- Frequency
- Hourly
- Estimated price
- CHF 50–90
- Website
- Iryo
- Phone
- +34 900 759 781
- Website
- Ouigo
Train from Madrid-Puerta de Atocha-Almudena Grandes to Barcelona-Sants
- Ave. Duration
- 3h 23m
- Frequency
- Every 4 hours
- Estimated price
- CHF 40–75
- Website
- Ouigo
- Phone
- +34 91 232 03 20
- Website
- Renfe Viajeros
Train from Madrid-Puerta de Atocha-Almudena Grandes to Barcelona-Sants
- Ave. Duration
- 3h 29m
- Frequency
- Twice daily
- Estimated price
- CHF 70–100
- Website
- Renfe Viajeros
Train from Barcelona-Sants to Lyon Part Dieu
- Ave. Duration
- 5h 6m
- Frequency
- Once daily
- Estimated price
- CHF 75–110
- Website
- Renfe Viajeros
Train from Madrid-Puerta de Atocha-Almudena Grandes to Marseille St Charles
- Ave. Duration
- 8h 42m
- Frequency
- Once daily
- Estimated price
- CHF 130–200
- Website
- Renfe Viajeros
- Phone
- +39.06.5210550
- Website
- Trenitalia
Train from Lyon Part Dieu to Milano Centrale
- Ave. Duration
- 4h 44m
- Frequency
- Twice daily
- Estimated price
- CHF 45–70
- Website
- Trenitalia
Train from Ventimiglia to Milano Centrale
- Ave. Duration
- 4h 30m
- Frequency
- Once daily
- Estimated price
- CHF 30–45
- Website
- Trenitalia
Train from Milano Centrale to Lugano
- Ave. Duration
- 1h 15m
- Frequency
- Hourly
- Estimated price
- CHF 26–45
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Zürich HB to Lugano
- Ave. Duration
- 1h 55m
- Frequency
- Hourly
- Estimated price
- CHF 60–95
- Website
- Swiss Federal Railways (SBB CFF FFS)
Train from Milano Centrale to Lugano
- Ave. Duration
- 1h 15m
- Frequency
- Hourly
- Estimated price
- CHF 26–45
- Website
- Swiss Federal Railways (SBB CFF FFS)
- Phone
- +39 06 8937 1892
- Website
- Italo Treno
Train from Torino Porta di Susa to Milano Centrale
- Ave. Duration
- 47 min
- Frequency
- Hourly
- Estimated price
- CHF 15–25
- Website
- Italo Treno
- Phone
- +33 4 13 94 30 50
- Website
- Zou! Lignes Express Régionales
Train from Marseille-Saint-Charles to Nice-Ville
- Ave. Duration
- 2h 41m
- Frequency
- Hourly
- Estimated price
- CHF 50–75
- Website
- Zou! Lignes Express Régionales
- Phone
- +39 06 68475475
- Website
- Trenitalia Intercity
Train from Ventimiglia to Milano Centrale
- Ave. Duration
- 3h 50m
- Frequency
- Every 4 hours
- Estimated price
- CHF 28–55
- Website
- Trenitalia Intercity
- Phone
- +49 30 300 137 300
- [email protected]
- Website
- Flixbus
Bus from Madrid to Milan
- Ave. Duration
- 23h 5m
- Frequency
- Once daily
- Estimated price
- CHF 130–200
- Website
- Flixbus
- Phone
- +3 318 576 2228
- Website
- BlaBlaCar Bus
Bus from Milano, Autostazione Lampugnano to Lugano
- Ave. Duration
- 1h 10m
- Frequency
- 5 times a day
- Estimated price
- CHF 5–9
- Website
- BlaBlaCar Bus
Bus from Estación Sur de Autobuses to Marseille - Saint-Charles Bus Station
- Ave. Duration
- 17h 59m
- Frequency
- 3 times a day
- Estimated price
- CHF 85–150
- Website
- BlaBlaCar Bus
Bus from Marseille - Saint-Charles Bus Station to Milano, Autostazione Lampugnano
- Ave. Duration
- 7h 35m
- Frequency
- Every 3 hours
- Estimated price
- CHF 35–60
- Website
- BlaBlaCar Bus
Bus from Milano, Autostazione Lampugnano to Lugano
- Ave. Duration
- 1h 10m
- Frequency
- 5 times a day
- Estimated price
- CHF 5–9
- Website
- BlaBlaCar Bus
- [email protected]
- Website
- TERRAVISION
Bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoia
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- CHF 4–21
- Website
- TERRAVISION
- Phone
- 035.319366
- [email protected]
- Website
- orioshuttle.com
Bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoia
- Ave. Duration
- 50 min
- Frequency
- Every 30 minutes
- Estimated price
- CHF 10–13
- Schedules at
- orioshuttle.com
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
Italy Travel Guides
Read the travel guide
5 delightfully under-the-radar French towns you need to visit
Read the travel guide
Booking & Getting There
Madrid to Lugano bus services, operated by FlixBus, arrive at Milan station.
Madrid to Lugano train services, operated by Renfe AVE, arrive at Barcelona-Sants station.
Yes, the driving distance between Madrid to Lugano is 1513 km. It takes approximately 16h 52m to drive from Madrid to Lugano.
Book your Madrid to Lugano train tickets online with Omio.
Book your Madrid to Lugano bus tickets online with Omio.
There are 6505+ hotels available in Lugano.



















































