Travel Information
Compare bus and train for Ulm to Mainz
Omio recommends booking the train as it is the most popular option from Ulm to Mainz among Omio's users. If you are prioritising price take the bus with prices starting from $31. For those with little time consider booking a train which can get you there in 2h 32m. 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 $31, and a train costs an average of $32.
Distance: 134 miles (216 km)
Compare train with
Most popular Train | Bus | Driving |
|---|---|---|
$76 Average price | $37 Average price Cheapest | $51 Average price (fuel + tolls) |
3h 2m Average total duration Fastest 2h 32m Onboard + 30m Additional time* | 8h 39m Average total duration 8h 9m Onboard + 30m Additional time* | 3h 18m Average total duration (door-to-door) |
0.1 - 0.2kg CO2 emissions Lowest | 0.2 - 0.5kg CO2 emissions | - CO2 emissions |
![]() Most popular train company | Your own car or car rental | |
Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
This is compared to other travel options from Ulm to Mainz:
A bus is $39 (€32) less than a train for this route with tickets for a train from Ulm to Mainz costing on average $76 (€62).
Other travel options to Mainz take longer:
Bus takes on average 8h 9m.
Travel optionsfrom Ulm to Mainz
How to get from Ulm to Mainz by train, bus or flight.
Our recommendation
The best way to travel from Ulm to Mainz is by taking a bus because it’s the best combination of price and speed.
FlixBus · FlixBus11:20 AM8h10Ulm, Eberhard-Finckh-Straße / Ludwig-Beck-Straße7:30 PMMainz, Binger Schlag (Kurzzeitparkplatz)$401One-way1 transfer
Cheapest
FlixBus · FlixBus11:20 AM8h10Ulm, Eberhard-Finckh-Straße / Ludwig-Beck-Straße7:30 PMMainz, Binger Schlag (Kurzzeitparkplatz)$401One-way1 transfer
Fastest
ICE 692 · 4560 · 13661 · 47567:59 AM2h47Ulm Hbf10:46 AMMainz Hbf$1011One-way3 transfers
Other options
ICE 772 · IC 1947+
TGV 95768:04 AM3h14Ulm Hbf11:18 AMMainz Hbf$421One-way2 transfers
ICE 692 · IC 19477:59 AM3h19Ulm Hbf11:18 AMMainz Hbf$861One-way1 transfer
ICE 692 · ICE 202 · 295147:59 AM2h50Ulm Hbf10:49 AMMainz Hbf$1011One-way2 transfers
Find 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 bus and train 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.
Jun 21
Jun 22
Jun 23
Jun 24
Jun 25
Jun 26
Jun 27
More than 1,000 travel companies trust us to sell their tickets all in one place.
FAQs: Travel from Ulm to Mainz
Travel to Mainz 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 Ulm to Mainz.

This is compared to other travel options from Ulm to Mainz:
A bus is $39 (€32) less than a train for this route with tickets for a train from Ulm to Mainz costing on average $76 (€62).
Other travel options to Mainz take longer:
Bus takes on average 8h 9m.
- Around 7 trains per day.
- Around 4 buses per day.
However, we recommend checking specific travel dates for your route between Ulm and Mainz as scheduled services by bus and train can vary by season or day of the week.
- Trains mostly depart from Ulm Hbf and arrive in Mainz Hbf.
- Buses mostly depart from Ulm, Eberhard-Finckh-Straße / Ludwig-Beck-Straße and arrive in Mainz, Binger Schlag (Kurzzeitparkplatz).
- Travel with FlixBus to go to Mainz by bus.
- Travel with Deutsche Bahn, Deutsche Bahn Intercity (DB IC), DB ZugBus Regionalverkehr Alb-Bodensee GmbH (RAB), Nederlandse Spoorwegen (NS) to go to Mainz by train.
- 0 direct trains per day with Deutsche Bahn, Deutsche Bahn Intercity (DB IC).
Travelling from Ulm to Mainz: related information
Here are some other resources that might have the information you need
