Travel Information
Compare train, bus, and flight for Brussels to Barcelona
Omio recommends booking the flight as it is the most popular option from Brussels to Barcelona among Omio's users. If you are prioritising price take the bus with prices starting from €29. For those with little time consider booking a flight which can get you there in 4h 50m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.3 - 1.0kg. The ticket price range depends on the travel mode: a bus costs an average of €29, and a train costs an average of €219.
Distance: 661 miles (1065 km)
Compare flight with
Most popular Flight | Bus | Train |
|---|---|---|
€123 Average price | €71 Average price Cheapest | €236 Average price |
7h 50m Average total duration Fastest 4h 50m Onboard + 3h 0m Additional time* | 9h 9m Average total duration 8h 39m Onboard + 30m Additional time* | 11h 10m Average total duration 10h 40m Onboard + 30m Additional time* |
3.2 - 6.4kg CO2 emissions | 1.1 - 2.7kg CO2 emissions | 0.3 - 1.0kg CO2 emissions Lowest |
![]() Most popular airline | ![]() Most popular bus company | ![]() Most popular train company |
Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Travel optionsfrom Brussels to Barcelona
How to get from Brussels to Barcelona by train, bus or flight.
Our recommendation
The best way to travel from Brussels to Barcelona is by taking a bus because it’s the best combination of price and speed.
1408 · 83133Cheapest
1408 · 83133Fastest
VY8987Other options
1680 · 3133
50338 · 3159
50429 · 83133
VY8983
VY8985
FR 3808Find all the dates and times for this journey by train, bus, flight, and ferry .
Compare prices and tickets Prices for trains, buses and flights
Compare train, bus, 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.
Feb 22
Feb 23
Feb 24
Feb 25
Feb 26
Feb 27
Feb 28
Mar 01
Mar 02
Mar 03
Mar 04
Mar 05
Mar 06
Mar 07
Mar 08
Mar 09
Mar 10
Mar 11
Mar 12
Mar 13
Mar 14
How to get from Brussels to Barcelona
The Best Way According to our Users
More than 1,000 travel companies trust us to sell their tickets all in one place.
FAQs: Travel from Brussels to Barcelona
Travel to Barcelona 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 Brussels to Barcelona.

This is compared to other travel options from Brussels to Barcelona:
A flight is $12 (€9) less than a bus for this route with tickets for a bus from Brussels to Barcelona costing on average $37 (€29).
A flight is $270 (€215) less than a train for this route with tickets for a train from Brussels to Barcelona costing on average $295 (€235).
Other travel options to Barcelona take longer:
Bus takes on average 18h 20m.
Train takes on average 11h 18m.
- Around 47 flights per day.
- Around 15 buses per day.
- Around 2 trains per day.
However, we recommend checking specific travel dates for your route between Brussels and Barcelona as scheduled services by train, bus, and flight can vary by season or day of the week.
- Flights mostly depart from Brussels Airport and arrive in Barcelona El Prat Airport.
- Buses mostly depart from Brussels, Brussels South (Gare du Midi) and arrive in Barcelona, Estació d'Autobusos Nord.
- Travel with AVE, TGV INOUI, TGV, Renfe to go to Barcelona by train.
- Travel with Vueling Airlines, Ryanair, Brussels Airlines, Lufthansa, KLM, Iberia, SWISS, Air Baltic, Air Europa, GetJet Airlines, Air Serbia, Royal Air Maroc, Stobart Air, Edelweiss Air, Compagnie Africaine D'Aviation to go to Barcelona by flight.
- Travel with BlaBlaCar Bus, FlixBus to go to Barcelona by bus.
- 12 direct flights per day with Vueling Airlines, Ryanair, Brussels Airlines, Iberia, GetJet Airlines, Stobart Air.
Travelling from Brussels to Barcelona: related information
Here are some other resources that might have the information you need

