Travel Information
Compare train, bus, and flight for Dortmund to Frankfurt am Main
Omio recommends booking the train as it is the most popular option from Dortmund to Frankfurt am Main among Omio's users. If you are prioritising price take the bus with prices starting from $15. For those with little time consider booking a flight which can get you there in 50m. In case you are seeking to minimise your carbon footprint the train is your best bet as it emits only 0.1 - 0.2kg. The ticket price range depends on the travel mode: a bus costs an average of $15, and a flight costs an average of $112.
Distance: 110 miles (178 km)
Compare train with
Most popular Train | Bus | Flight |
|---|---|---|
$66 Average price | $23 Average price Cheapest | $140 Average price |
4h 3m Average total duration 3h 33m Onboard + 30m Additional time* | 4h 40m Average total duration 4h 10m Onboard + 30m Additional time* | 3h 50m Average total duration Fastest 50m Onboard + 3h 0m Additional time* |
0.1 - 0.2kg CO2 emissions Lowest | 0.2 - 0.4kg CO2 emissions | - 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 Dortmund to Frankfurt am Main
How to get from Dortmund to Frankfurt am Main by train, bus or flight.
Our recommendation
The best way to travel from Dortmund to Frankfurt am Main is by taking a bus because it’s the best combination of price and speed.
FlixBusCheapest
FlixBusFastest
LH77Other options
33084+
15107
33084+
15107+
S9
ICE 915 · 17409 · ICE 1225
FlixBus
LH75Find 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.
Mar 03
Mar 04
Mar 05
Mar 06
Mar 07
Mar 08
Mar 09
Mar 10
Mar 11
Mar 12
Mar 13
Mar 14
Mar 15
Mar 16
Mar 17
Mar 18
Mar 19
Mar 20
Mar 21
Mar 22
Mar 23
How to get from Dortmund to Frankfurt am Main
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 Dortmund to Frankfurt am Main
Travel to Frankfurt am Main 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 Dortmund to Frankfurt am Main.

This is compared to other travel options from Dortmund to Frankfurt am Main:
A bus is $6 (€5) less than a train for this route with tickets for a train from Dortmund to Frankfurt am Main costing on average $21 (€17).
A bus is $97 (€79) less than a flight for this route with tickets for a flight from Dortmund to Frankfurt am Main costing on average $112 (€90).
Other travel options to Frankfurt am Main take longer:
Train takes on average 2h 11m.
Bus takes on average 3h 20m.
- Around 21 trains per day.
- Around 9 buses per day.
- Around 5 flights per day.
However, we recommend checking specific travel dates for your route between Dortmund and Frankfurt am Main as scheduled services by train, bus, and flight can vary by season or day of the week.
- Trains mostly depart from Dortmund Hbf and arrive in Frankfurt (Main) Hbf.
- Buses mostly depart from Dortmund, ZOB am Hbf and arrive in Frankfurt am Main, Flughafen Frankfurt (Terminal 1 - Busparkplatz P36).
- Travel with Lufthansa to go to Frankfurt am Main by flight.
- Travel with FlixBus, BlaBlaCar, Globtour Medjugorjie to go to Frankfurt am Main by bus.
- Travel with Deutsche Bahn, Hessische Landesbahn, VIAS Rail GmbH, FlixTrain to go to Frankfurt am Main by train.
- 4 direct flights per day with Lufthansa.
- 9 direct buses per day with FlixBus, BlaBlaCar.
- 5 direct trains per day with Deutsche Bahn.
Travelling from Dortmund to Frankfurt am Main: related information
Here are some other resources that might have the information you need
