Travel Information
Compare train, bus, and flight for Warsaw to Berlin
Omio recommends booking the train as it is the most popular option from Warsaw to Berlin among Omio's users. If you are prioritising price take the bus with prices starting from €20. For those with little time consider booking a flight which can get you there in 2h 52m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.2 - 0.5kg. The ticket price range depends on the travel mode: a bus costs an average of €20, and a flight costs an average of €217.
Distance: 517 km
Compare train with
Most popular Train | Bus | Flight |
|---|---|---|
€82 Average price | €29 Average price Cheapest | €334 Average price |
6h 19m Average total duration 5h 49m Onboard + 30m Additional time* | 8h 2m Average total duration 7h 32m Onboard + 30m Additional time* | 5h 52m Average total duration Fastest 2h 52m Onboard + 3h 0m Additional time* |
0.2 - 0.5kg CO2 emissions Lowest | 0.5 - 1.3kg CO2 emissions | 1.5 - 3.1kg CO2 emissions |
![]() Most popular train company | ![]() Most popular bus company | ![]() Most popular airline |
Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Travel optionsfrom Warsaw to Berlin
How to get from Warsaw to Berlin by train, bus or flight.
Our recommendation
The best way to travel from Warsaw to Berlin is by taking a bus because it’s the best combination of price and speed.

Cheapest

Fastest
LO387Other options
EC 46 · BUS 40046
EIC 1804 · EC 230 · BUS 40230
EC 48 · BUS 40048
FlixBus
FlixBus
FlixBus
EW9735 · EW9042
EW9735 · EW9044
OS662 · OS229Find 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 08
Feb 09
Feb 10
Feb 11
Feb 12
Feb 13
Feb 14
Feb 15
Feb 16
Feb 17
Feb 18
Feb 19
Feb 20
Feb 21
Feb 22
Feb 23
Feb 24
Feb 25
Feb 26
Feb 27
Feb 28
More than 1,000 travel companies trust us to sell their tickets all in one place.
FAQs: Travel from Warsaw to Berlin
Travel to Berlin 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 Warsaw to Berlin.

This is compared to other travel options from Warsaw to Berlin:
A bus is €10 less than a train for this route with tickets for a train from Warsaw to Berlin costing on average €30.
A bus is €197 less than a flight for this route with tickets for a flight from Warsaw to Berlin costing on average €217.
Other travel options to Berlin take longer:
Train takes on average 5h 5m.
Bus takes on average 7h 0m.
- Around 60 buses per day.
- Around 23 flights per day.
- Around 5 trains per day.
However, we recommend checking specific travel dates for your route between Warsaw and Berlin as scheduled services by train, bus, and flight can vary by season or day of the week.
- Flights mostly depart from Warsaw Chopin Airport and arrive in Berlin Brandenburg Airport.
- Trains mostly depart from Warsaw Central and arrive in Berlin Hbf.
- Buses mostly depart from Warszawa, Dworzec Zachodni and arrive in Berlin, Zentraler Omnibusbahnhof (ZOB).
- Travel with Deutsche Bahn, PKP Intercity, PKP Intercity to go to Berlin by train.
- Travel with LOT Polish Airlines, Austrian Airlines, Lufthansa Cityline, Brussels Airlines, Lufthansa, Norwegian Air, SWISS to go to Berlin by flight.
- Travel with Ecolines, FlixBus, Sindbad, Euroticket, BlaBlaCar, Infobus, Warszawski Transport Publiczny to go to Berlin by bus.
- 3 direct trains per day with Deutsche Bahn, PKP Intercity.
- 2 direct flights per day with LOT Polish Airlines.
- 52 direct buses per day with Ecolines, FlixBus, Sindbad, Euroticket, BlaBlaCar, Infobus.
Travelling from Warsaw to Berlin: related information
Here are some other resources that might have the information you need
