There are 9 ways to get from Charleroi to Milan by train, plane, train (Eurostar, Trenitalia), bus, or car
Select an option below to see step-by-step directions and to compare ticket prices and travel times in Rome2Rio's travel planner.
Train to Brussels Airport, fly to Milan Linate Airport
best- Take the train from Charleroi-Central to Bruxelles-Miditrain
- Fly from Brussels Airport (BRU) to Milan Linate Airport (LIN)plane BRU - LIN
4h 54m€48–228Fly Brussels South Charleroi Airport to Il Caravaggio International Airport, bus
cheapest- Fly from Brussels South Charleroi Airport (CRL) to Il Caravaggio International Airport (BGY)plane CRL - BGY
- Take the bus from Milan Bergamo Orio al Serio Airport to Piazza Luigi di Savoiabus
4h 53m€43–228Train
- Take the train from Charleroi-Central to Bruxelles-Miditrain Ic / ...
- Take the train from Brussel-Zuid / Bruxelles-Midi to Chambery Challes Les Eauxtrain
- Take the train from Chambery Challes Les Eaux to Milano Centraletrain Fr
10h 41m€280–479Bus
- Take the bus from Charleroi Rue de la Villette to Milano - Famagostabus
13h 33m€130–190Drive 836.8 km
- Drive from Charleroi to Milancar 836.8 km
9h 2m€131–189Train to Brussels Airport, fly to Milano Malpensa Airport, train
- Take the train from Charleroi-Central to Bruxelles-Miditrain
- Fly from Brussels Airport (BRU) to Milano Malpensa Airport (MXP)plane BRU - MXP
- Take the train from Malpensa Aeroporto T1 to Milano Porta Garibalditrain
5h 53m€81–241Fly Brussels South Charleroi Airport to Turin Caselle Airport, train
- Fly from Brussels South Charleroi Airport (CRL) to Turin Caselle Airport (TRN)plane CRL - TRN
- Take the train from Torino Porta di Susa to Milano Centraletrain
5h 57m€58–262Train to Luxembourg, fly to Milan Linate Airport
- Take the train from Namur to Luxembourgtrain
- Fly from Luxembourg (LUX) to Milan Linate Airport (LIN)plane LUX - LIN
7h 29m€90–345Train, bus
- Take the train from Charleroi-Central to Brussels-Nordtrain Ic / ...
- Take the bus from Brussels-North Station to Milano, Autostazione Lampugnanobus
15h 37m
Charleroi to Milan by train
Questions & Answers
The cheapest way to get from Charleroi to Milan is to fly and bus which costs €40 - €230 and takes 4h 53m.
The fastest way to get from Charleroi to Milan is to fly and bus which takes 4h 53m and costs €40 - €230.
Yes, there is a direct bus departing from Charleroi Rue de la Villette and arriving at Milano - Famagosta. Services depart once a week. The journey takes approximately 13h 33m.
No, there is no direct train from Charleroi to Milan. However, there are services departing from Charleroi-Central and arriving at Milano Centrale via Brussel-Zuid / Bruxelles-Midi and Chambery Challes Les Eaux. The journey, including transfers, takes approximately 10h 41m.
The distance between Charleroi and Milan is 779 km. The road distance is 836.8 km.
The best way to get from Charleroi to Milan without a car is to train which takes 10h 41m and costs €280 - €480.
It takes approximately 4h 54m to get from Charleroi to Milan, including transfers.
Charleroi to Milan bus services, operated by Onebus, depart from Charleroi Rue de la Villette station.
Charleroi to Milan train services, operated by Belgian Railways (NMBS/SNCB), depart from Charleroi-Central station.
The best way to get from Charleroi to Milan is to train which takes 10h 41m and costs €280 - €480. Alternatively, you can bus, which costs €130 - €190 and takes 13h 33m.
What companies run services between Charleroi, Belgium and Milan, Italy?
You can take a train from Charleroi-Central to Milano Centrale via Brussel-Zuid / Bruxelles-Midi and Chambery Challes Les Eaux in around 10h 41m. Alternatively, Onebus operates a bus from Charleroi Rue de la Villette to Milano - Famagosta once a week. Tickets cost €130–190 and the journey takes 13h 33m.
- Website
- ita-airways.com
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- €65–330
Flights from Brussels Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 32m
- When
- Every day
- Estimated price
- €65–170
Flights from Luxembourg to Milan Linate Airport
- Ave. Duration
- 1h 20m
- When
- Saturday, Monday, Tuesday, Wednesday, and Sunday
- Estimated price
- €65–300
- Website
- ryanair.com
Flights from Brussels South Charleroi Airport to Il Caravaggio International Airport
- Ave. Duration
- 1h 30m
- When
- Every day
- Estimated price
- €35–200
Flights from Brussels South Charleroi Airport to Turin Caselle Airport
- Ave. Duration
- 1h 30m
- When
- Every day
- Estimated price
- €30–200
- Website
- lufthansa.com
Flights from Brussels Airport to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 35m
- When
- Monday, Tuesday, Friday, Saturday, and Sunday
- Estimated price
- €190–300
Flights from Brussels Airport to Milano Malpensa Airport via Frankfurt
- Ave. Duration
- 3h 25m
- When
- Every day
- Estimated price
- €75–440
Flights from Brussels Airport to Milano Malpensa Airport via Munich
- Ave. Duration
- 3h 47m
- When
- Every day
- Estimated price
- €65–170
Flights from Luxembourg to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 5m
- When
- Every day
- Estimated price
- €85–170
Flights from Luxembourg to Milan Linate Airport via Munich
- Ave. Duration
- 3h 25m
- When
- Every day
- Estimated price
- €85–170
- Website
- brusselsairlines.com
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 28m
- When
- Every day
- Estimated price
- €65–330
Flights from Brussels Airport to Milano Malpensa Airport
- Ave. Duration
- 1h 32m
- When
- Every day
- Estimated price
- €65–170
- Website
- easyjet.com
Flights from Brussels Airport to Milan Linate Airport
- Ave. Duration
- 1h 23m
- When
- Every day
- Estimated price
- €30–170
Flights from Luxembourg to Milan Linate Airport
- Ave. Duration
- 1h 15m
- When
- Monday, Wednesday, Thursday, Friday, and Sunday
- Estimated price
- €27–240
- Website
- luxair.lu
Flights from Luxembourg to Milan Linate Airport
- Ave. Duration
- 1h 20m
- When
- Saturday, Monday, Tuesday, Wednesday, and Sunday
- Estimated price
- €65–300
- Website
- swiss.com
Flights from Brussels Airport to Milano Malpensa Airport via Zurich
- Ave. Duration
- 3h 47m
- When
- Every day
- Estimated price
- €75–260
- Website
- klm.com
Flights from Brussels Airport to Milan Linate Airport via Amsterdam Schiphol
- Ave. Duration
- 3h 35m
- When
- Saturday and Sunday
- Estimated price
- €55–310
- Website
- airdolomiti.it
Flights from Luxembourg to Milan Linate Airport via Frankfurt
- Ave. Duration
- 3h 5m
- When
- Every day
- Estimated price
- €85–170
- Phone
- +32 70 79 79 79
- Website
- Belgian Railways
Train from Charleroi-Central to Bruxelles-Midi
- Ave. Duration
- 51 min
- Frequency
- Every 30 minutes
- Estimated price
- €9–19
- Website
- Belgian Railways
Train from Charleroi-Central to Bruxelles-Midi
- Ave. Duration
- 51 min
- Frequency
- Every 30 minutes
- Estimated price
- €9–19
- Website
- Belgian Railways
Train from Charleroi-Central to Bruxelles-Midi
- Ave. Duration
- 51 min
- Frequency
- Every 30 minutes
- Estimated price
- €9–19
- Website
- Belgian Railways
Train from Namur to Luxembourg
- Ave. Duration
- 2h 3m
- Frequency
- Hourly
- Estimated price
- €28–60
- Website
- Belgian Railways
Train from Charleroi-Central to Brussels-Nord
- Ave. Duration
- 1h 4m
- Frequency
- Every 30 minutes
- Estimated price
- €10–20
- Website
- Belgian Railways
- Phone
- +44 (0)3432 186 186
- Website
- Eurostar
Train from Brussel-Zuid / Bruxelles-Midi to Chambery Challes Les Eaux
- Ave. Duration
- 4h 29m
- Frequency
- 5 times a week
- Estimated price
- €230–390
- Website
- Eurostar
- Phone
- +39.06.5210550
- Website
- Trenitalia
Train from Chambery Challes Les Eaux to Milano Centrale
- Ave. Duration
- 3h 21m
- Frequency
- 4 times a day
- Estimated price
- €40–70
- Website
- Trenitalia
- Phone
- +39 02 7249 4494
- [email protected]
- Website
- Trenord
Train from Malpensa Aeroporto T1 to Milano Porta Garibaldi
- Ave. Duration
- 44 min
- Frequency
- Every 30 minutes
- Estimated price
- €4–6
- Website
- Trenord
- 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
- €18–35
- Website
- Italo Treno
- Phone
- +39 0362 185 0590
- [email protected]
- Website
- Onebus
Bus from Charleroi Rue de la Villette to Milano - Famagosta
- Ave. Duration
- 13h 33m
- Frequency
- Once a week
- Estimated price
- €130–190
- Website
- Onebus
- [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
- €5–25
- Website
- TERRAVISION
- Phone
- +393293958604
- [email protected]
- Website
- pistoia-viaggi.it
Bus from Brussels-North Station to Milano, Autostazione Lampugnano
- Ave. Duration
- 13h 33m
- Frequency
- Once a week
- Schedules at
- pistoia-viaggi.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
Getting to Milan from the airport
Read the travel guide
5 delightfully under-the-radar French towns you need to visit
Read the travel guide
More Questions & Answers
Charleroi to Milan bus services, operated by Onebus, arrive at Milano - Famagosta station.
Charleroi to Milan train services, operated by Belgian Railways (NMBS/SNCB), arrive at Bruxelles-Midi station.
Yes, the driving distance between Charleroi to Milan is 837 km. It takes approximately 9h 2m to drive from Charleroi to Milan.
Book your Charleroi to Milan train tickets online with Omio.
Book your Charleroi to Milan bus tickets online with Omio.
There are 14155+ hotels available in Milan.


































