Journey information
Overview: Madrid to Lugano flight
Flights from Madrid to Lugano depart on average 110 times per day, taking around 2h 29m. Cheap flight tickets for this journey start at £21 if you book in advance.
There are 13 flights per day. The earliest flight runs at 05:35, the last at 23:05. The fastest flight covers the 1197 km distance in 2h 10m. July is the cheapest month to fly.
Distance 1197 km |
Average flight duration 2h 29m |
Cheapest ticket price £21 |
Flights per day 110 |
Direct flights 13 |
Fastest flight 2h 10m |
First flight 5:35 |
Last flight 23:05 |
Cheapest Month Jul |
Cheapest Day Sat |
High Season Jul - Sept |
Low Season Apr - Jun |
Busiest Day Fri |
Least Busy Day Fri |
Best time to book 28 days |
The cheapest and fastest flights from Madrid to Lugano
Cheapest price
£133
Average price
£447
Fastest journey
2 h 5 m
Average duration
2 h 8 m
Flights per day
91
Distance
1197 km
The best way to find a cheap flight ticket from Madrid to Lugano is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Madrid to Lugano will cost around £447 if you buy it on the day, but you can find cheap flight tickets today for only £133.
Of the 91 flights that leave Madrid for Lugano every day 11 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
These direct flights cover the 1197 km distance in an average of 2 h 8 m but if you time it right, some flights will get you there in just 2 h 5 m .
The slowest flights will take 2 h 10 m and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
FR 512113:502h15Madrid Barajas Airport16:05Milan Bergamo Orio al Serio Airport£1331One-way0 changes
FR 27539:002h10Madrid Barajas Airport11:10Milan Malpensa Airport£1421One-way0 changes
IB6717:302h10Madrid Barajas Airport9:40Milan Linate Airport£1431One-way0 changes
AZ61 · AZ205011:357h35Madrid Barajas Airport19:10Milan Linate Airport£1511One-way1 change
AZ61 · AZ209211:356h35Madrid Barajas Airport18:10Milan Linate Airport£1511One-way1 change
UX10657:402h05Madrid Barajas Airport9:45Milan Malpensa Airport£1771One-way0 changes
UX106115:102h05Madrid Barajas Airport17:15Milan Malpensa Airport£2931One-way0 changes
FR 27539:002h10Madrid Barajas Airport11:10Milan Malpensa Airport£1421One-way0 changes
IB6717:302h10Madrid Barajas Airport9:40Milan Linate Airport£1431One-way0 changes
IB6638:502h10Madrid Barajas Airport11:00Milan Linate Airport£1671One-way0 changes
Travel Information
Compare train, coach and flight for Madrid to Lugano
Omio recommends booking the flight as it is the most popular option from Madrid to Lugano among Omio's users. If you are prioritising price take the flight with prices starting from £21. For those with little time consider booking a flight which can get you there in 2h 29m. The ticket price range depends on the travel mode: a flight costs an average of £21, and a train costs an average of £289.
Distance: 1197 km
Compare flight with
Most popular Flight | Coach | Train |
|---|---|---|
£75 Average Price Cheapest | £112 Average Price | £299 Average Price |
5h 29m Average total duration Fastest 2h 29m Onboard + 3h 0m Additional time* | 25h 0m Average total duration 24h 30m Onboard + 30m Additional time* | 27h 7m Average total duration 26h 37m Onboard + 30m Additional time* |
Direct Options | Direct Options | Direct Options |
Live departures
Madrid to Lugano flight times
The table below shows live departures for Madrid to Lugano flights for tomorrow, Wednesday 29 April. You can also manually refresh the results below to see updated flight journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
LH1121 · LH272 | 5:55 Madrid Barajas Airport | 6h05 | 12:00 Milan Linate Airport | 1 change | |
AZ59 · AZ2044 | 5:55 Madrid Barajas Airport | 9h15 | 15:10 Milan Linate Airport | 1 change | |
AZ59 · AZ2036 | 5:55 Madrid Barajas Airport | 5h45 | 11:40 Milan Linate Airport | 1 change | |
AF1401 · AF1130 | 6:00 Madrid Barajas Airport | 17h00 | 23:00 Milan Malpensa Airport | 1 change | |
AF1401 · AF1012 | 6:00 Madrid Barajas Airport | 7h55 | 13:55 Milan Linate Airport | 1 change | |
AF1401 · AF1312 | 6:00 Madrid Barajas Airport | 13h45 | 19:45 Milan Linate Airport | 1 change | |
KL1500 · KL1615 | 6:00 Madrid Barajas Airport | 6h00 | 12:00 Milan Linate Airport | 1 change | |
AF1401 · AF1412 | 6:00 Madrid Barajas Airport | 5h20 | 11:20 Milan Linate Airport | 1 change | |
KL1500 · KL1617 | 6:00 Madrid Barajas Airport | 9h55 | 15:55 Milan Linate Airport | 1 change | |
AF1401 · AF1230 | 6:00 Madrid Barajas Airport | 8h45 | 14:45 Milan Malpensa Airport | 1 change | |
AF1401+ AF1730 | 6:00 Madrid Barajas Airport | 11h35 | 17:35 Milan Malpensa Airport | 1 change | |
SN3732+ SN4133 | 6:20 Madrid Barajas Airport | 4h35 | 10:55 Milan Linate Airport | 1 change | |
SN3732 · SN3147 | 6:20 Madrid Barajas Airport | 6h00 | 12:20 Milan Linate Airport | 1 change | |
BA7052+ BA570 | 7:00 Madrid Barajas Airport | 5h30 | 12:30 Milan Linate Airport | 1 change | |
LH4165+ LH1852 | 7:00 Madrid Barajas Airport | 6h00 | 13:00 Milan Linate Airport | 1 change | |
LH4165+ LH9448 | 7:00 Madrid Barajas Airport | 5h15 | 12:15 Milan Malpensa Airport | 1 change | |
AZ7115 · AZ2080 | 7:05 Madrid Barajas Airport | 10h05 | 17:10 Milan Linate Airport | 1 change | |
AZ7115 · AZ2044 | 7:05 Madrid Barajas Airport | 8h05 | 15:10 Milan Linate Airport | 1 change | |
IB671 | 7:30 Madrid Barajas Airport | 2h10 | 9:40 Milan Linate Airport | 0 changesdirect | |
UX1065 | 7:40 Madrid Barajas Airport | 2h05 | 9:45 Milan Malpensa Airport | 0 changesdirect | |
BA7060+ BA572 | 8:05 Madrid Barajas Airport | 5h25 | 13:30 Milan Linate Airport | 1 change | |
LH1123+ LH5636 | 8:25 Madrid Barajas Airport | 5h25 | 13:50 Milan Malpensa Airport | 1 change | |
LH1123 · LH274 | 8:25 Madrid Barajas Airport | 6h15 | 14:40 Milan Linate Airport | 1 change | |
IB663 | 8:50 Madrid Barajas Airport | 2h10 | 11:00 Milan Linate Airport | 0 changesdirect | |
FR 2753 | 9:00 Madrid Barajas Airport | 2h10 | 11:10 Milan Malpensa Airport | 0 changesdirect | |
BA7066+ BA574 | 9:10 Madrid Barajas Airport | 5h50 | 15:00 Milan Linate Airport | 1 change | |
W46312 | 9:55 Madrid Barajas Airport | 2h15 | 12:10 Milan Malpensa Airport | 0 changesdirect | |
AF1001 · AF1312 | 10:05 Madrid Barajas Airport | 9h40 | 19:45 Milan Linate Airport | 1 change | |
AF1001 · AF1230 | 10:05 Madrid Barajas Airport | 4h40 | 14:45 Milan Malpensa Airport | 1 change | |
AF1001 · AF1130 | 10:05 Madrid Barajas Airport | 12h55 | 23:00 Milan Malpensa Airport | 1 change | |
AF1001 · AF1732 | 10:05 Madrid Barajas Airport | 12h25 | 22:30 Milan Linate Airport | 1 change | |
AF1001+ AF1730 | 10:05 Madrid Barajas Airport | 7h30 | 17:35 Milan Malpensa Airport | 1 change | |
QR148 · QR123 | 10:15 Madrid Barajas Airport | 22h50 | 9:05 Milan Malpensa Airport | 1 change | |
QR148 · QR127 | 10:15 Madrid Barajas Airport | 28h30 | 14:45 Milan Malpensa Airport | 1 change | |
KL1502 · KL1621 | 10:25 Madrid Barajas Airport | 12h25 | 22:50 Milan Linate Airport | 1 change | |
KL1502 · KL1617 | 10:25 Madrid Barajas Airport | 5h30 | 15:55 Milan Linate Airport | 1 change | |
KL1502+ KL1681 | 10:25 Madrid Barajas Airport | 10h55 | 21:20 Milan Linate Airport | 1 change | |
IB673 | 11:30 Madrid Barajas Airport | 2h10 | 13:40 Milan Linate Airport | 0 changesdirect | |
AZ61 · AZ2050 | 11:35 Madrid Barajas Airport | 7h35 | 19:10 Milan Linate Airport | 1 change | |
AZ61 · AZ2092 | 11:35 Madrid Barajas Airport | 6h35 | 18:10 Milan Linate Airport | 1 change | |
AZ61 · AZ2080 | 11:35 Madrid Barajas Airport | 5h35 | 17:10 Milan Linate Airport | 1 change | |
LH1801+ LH1854 | 11:50 Madrid Barajas Airport | 5h55 | 17:45 Milan Linate Airport | 1 change | |
BA459 · BA586 | 12:10 Madrid Barajas Airport | 5h40 | 17:50 Milan Malpensa Airport | 1 change | |
AF1301 · AF1732 | 12:20 Madrid Barajas Airport | 10h10 | 22:30 Milan Linate Airport | 1 change | |
LH1117+ LH278 | 12:20 Madrid Barajas Airport | 6h05 | 18:25 Milan Linate Airport | 1 change | |
LH1117+ LH276 | 12:20 Madrid Barajas Airport | 5h10 | 17:30 Milan Linate Airport | 1 change | |
AF1301 · AF1312 | 12:20 Madrid Barajas Airport | 7h25 | 19:45 Milan Linate Airport | 1 change | |
AF1301 · AF1130 | 12:20 Madrid Barajas Airport | 10h40 | 23:00 Milan Malpensa Airport | 1 change | |
LH1117 · LH254 | 12:20 Madrid Barajas Airport | 5h40 | 18:00 Milan Malpensa Airport | 1 change | |
AF1301+ AF1830 | 12:20 Madrid Barajas Airport | 19h55 | 8:15 Milan Malpensa Airport | 1 change | |
AF1301+ AF1730 | 12:20 Madrid Barajas Airport | 5h15 | 17:35 Milan Malpensa Airport | 1 change | |
SN3722 · SN3149 | 12:40 Madrid Barajas Airport | 5h20 | 18:00 Milan Linate Airport | 1 change | |
LH1113 · LH256 | 13:05 Madrid Barajas Airport | 5h35 | 18:40 Milan Malpensa Airport | 1 change | |
KL1504+ KL1681 | 13:05 Madrid Barajas Airport | 8h15 | 21:20 Milan Linate Airport | 1 change | |
LH1113 · LH254 | 13:05 Madrid Barajas Airport | 4h55 | 18:00 Milan Malpensa Airport | 1 change | |
LH1113+ LH278 | 13:05 Madrid Barajas Airport | 5h20 | 18:25 Milan Linate Airport | 1 change | |
KL1504 · KL1621 | 13:05 Madrid Barajas Airport | 9h45 | 22:50 Milan Linate Airport | 1 change | |
FR 5121 | 13:50 Madrid Barajas Airport | 2h15 | 16:05 Milan Bergamo Orio al Serio Airport | 0 changesdirect | |
BA3273 · BA7305 | 13:55 Madrid Barajas Airport | 5h45 | 19:40 Milan Linate Airport | 1 change | |
AZ7117 · AZ2056 | 15:00 Madrid Barajas Airport | 5h10 | 20:10 Milan Linate Airport | 1 change | |
AZ7117 · AZ2114 | 15:00 Madrid Barajas Airport | 6h10 | 21:10 Milan Linate Airport | 1 change | |
UX1061 | 15:10 Madrid Barajas Airport | 2h05 | 17:15 Milan Malpensa Airport | 0 changesdirect | |
BA7068+ BA580 | 15:45 Madrid Barajas Airport | 5h50 | 21:35 Milan Linate Airport | 1 change | |
IB675 | 16:00 Madrid Barajas Airport | 2h15 | 18:15 Milan Linate Airport | 0 changesdirect | |
AF1601 · AF1732 | 16:40 Madrid Barajas Airport | 5h50 | 22:30 Milan Linate Airport | 1 change | |
AF1601 · AF1130 | 16:40 Madrid Barajas Airport | 6h20 | 23:00 Milan Malpensa Airport | 1 change | |
AF1601+ AF1330 | 16:40 Madrid Barajas Airport | 17h45 | 10:25 Milan Malpensa Airport | 1 change | |
AF1601+ AF1830 | 16:40 Madrid Barajas Airport | 15h35 | 8:15 Milan Malpensa Airport | 1 change | |
LH1115+ LH280 | 16:55 Madrid Barajas Airport | 5h20 | 22:15 Milan Linate Airport | 1 change | |
LH1115+ LH5638 | 16:55 Madrid Barajas Airport | 6h15 | 23:10 Milan Malpensa Airport | 1 change | |
QR150 · QR123 | 17:10 Madrid Barajas Airport | 15h55 | 9:05 Milan Malpensa Airport | 1 change | |
QR150 · QR127 | 17:10 Madrid Barajas Airport | 21h35 | 14:45 Milan Malpensa Airport | 1 change | |
KL1506 · KL1621 | 17:20 Madrid Barajas Airport | 5h30 | 22:50 Milan Linate Airport | 1 change | |
IB665 | 17:25 Madrid Barajas Airport | 2h10 | 19:35 Milan Linate Airport | 0 changesdirect | |
BA461 · BA590 | 17:30 Madrid Barajas Airport | 6h10 | 23:40 Milan Malpensa Airport | 1 change | |
BA7058+ BA590 | 17:45 Madrid Barajas Airport | 5h55 | 23:40 Milan Malpensa Airport | 1 change | |
AF1801 · AF1732 | 17:45 Madrid Barajas Airport | 4h45 | 22:30 Milan Linate Airport | 1 change | |
AF1801 · AF1212 | 17:45 Madrid Barajas Airport | 15h05 | 8:50 Milan Linate Airport | 1 change | |
AF1801 · AF1130 | 17:45 Madrid Barajas Airport | 5h15 | 23:00 Milan Malpensa Airport | 1 change | |
AF1801 · AF1230 | 17:45 Madrid Barajas Airport | 21h00 | 14:45 Milan Malpensa Airport | 1 change | |
AF1801+ AF1830 | 17:45 Madrid Barajas Airport | 14h30 | 8:15 Milan Malpensa Airport | 1 change | |
AF1801+ AF1330 | 17:45 Madrid Barajas Airport | 16h40 | 10:25 Milan Malpensa Airport | 1 change | |
BA463 · BA590 | 18:25 Madrid Barajas Airport | 5h15 | 23:40 Milan Malpensa Airport | 1 change | |
LH1805+ LH7432 | 18:25 Madrid Barajas Airport | 4h45 | 23:10 Milan Malpensa Airport | 1 change | |
AF1230+ AF1101 | 20:15 Madrid Barajas Airport | 18h30 | 14:45 Milan Malpensa Airport | 1 change | |
AF1330 · AF1101 | 20:15 Madrid Barajas Airport | 14h10 | 10:25 Milan Malpensa Airport | 1 change | |
AF1212+ AF1101 | 20:15 Madrid Barajas Airport | 12h35 | 8:50 Milan Linate Airport | 1 change | |
AF1830 · AF1101 | 20:15 Madrid Barajas Airport | 12h00 | 8:15 Milan Malpensa Airport | 1 change | |
AF1101 · AF1730 | 20:15 Madrid Barajas Airport | 21h20 | 17:35 Milan Malpensa Airport | 1 change | |
KL1508 · KL1613 | 20:30 Madrid Barajas Airport | 13h35 | 10:05 Milan Linate Airport | 1 change | |
IB667 | 20:50 Madrid Barajas Airport | 2h10 | 23:00 Milan Linate Airport | 0 changesdirect | |
This is the last flight of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Madrid to Lugano by train, coach or flight
Compare train, coach and flight 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.
29 Apr
30 Apr
01 May
02 May
03 May
04 May
05 May
Why should you book Madrid to Lugano flights with Omio?
Why book with Omio vs Malta Air?
- Compare with other providers: On Omio, you can not only buy tickets for Malta Air, but also compare tickets for the likes of Ryanair, Iberia, ITA or Air Europa to find the best option for your trip from Madrid to Lugano.
- Designed for International Travelers: Omio is in your language including 24/7 customer service and offers multiple payment options, including PayPal, credit cards, and bank transfer, in your preferred currency.
- Compare all your options: Omio allows you to compare Malta Air with all available travel options, which are train, bus and flight to ensure you get the best deal for traveling from Madrid to Lugano.
Why book with Omio over Skyscanner, Kayak or Trip?
- Compare with other providers: On Omio, you can also compare tickets for the likes of Ryanair, Iberia, ITA or Air Europa to find the best option for your trip from Madrid to Lugano.
- Multiple modes of transport: Omio allows you to compare travel options including train, bus and flight to find the ideal travel option from Madrid to Lugano.
Airlines: Malta Air, Ryanair, Iberia, ITA, Air Europa, Swiss from Madrid to LuganoFind the best flights between Madrid to Lugano with Omio's travel partners Malta Air, Ryanair, Iberia, ITA, Air Europa, Swiss from £21. We can find you the best deals, schedules and tickets when comparing and booking the best trip.
ITA
Swiss
Iberia
Air Europa
Malta Air
Ryanair
FAQs: Madrid to Lugano flights
Find answers to the most common questions about traveling from Madrid to Lugano by flight. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest flight, the cheapest option, or tips for making the most of your visit at Lugano, this guide helps you travel smarter and with confidence.

popular airports
Important Stations and Airports in Madrid and Lugano
- Free Wi-Fi available throughout the airport.
- Shops in all terminals, including duty-free and fashion brands.
- Parking available at all terminals, approximately 2.5€ per hour.
- Available outside the terminal.
- Ramps, assistance.
- Available throughout the airport.
- Yes
- Lounges available in all terminals, including VIP lounges.
- Located in Terminal 1, 2, and 4.
- Metro: Line 8
- Bus: Lines 101, 200, Exprés-203
- Train: Cercanías C1, C10
More options for your journey from Madrid to Lugano
Here are some other resources that might have the information you need












