The cheapest and fastest trains from Mainz Hbf to Milan Centrale
Cheapest price
£217
Average price
£224
Fastest journey
8 h 10 m
Average duration
12 h 50 m
Trains per day
3
Distance
507 km
The best way to find a cheap train ticket from Mainz Hbf to Milan Centrale is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Mainz Hbf to Milan Centrale will cost around £224 if you buy it on the day, but you can find cheap train tickets today for only £217.
To travel from Mainz Hbf to Milan Centrale you need to make at least 3 changes.






Travel Information
Compare train, coach and flight for Mainz Hbf to Milan Centrale
Omio recommends booking the train as it is the most popular option from Mainz Hbf to Milan Centrale among Omio's users. If you are prioritising price take the coach with prices starting from £30. For those with little time consider booking a flight which can get you there in 1h 20m. The ticket price range depends on the travel mode: a coach costs an average of £30, and a train costs an average of £219.
Distance: 507 km
Compare train with
Most popular Train | Flight | Coach |
|---|---|---|
£224 Average Price | £54 Average Price | £42 Average Price Cheapest |
8h 8m Average total duration 7h 38m Onboard + 30m Additional time* | 4h 20m Average total duration Fastest 1h 20m Onboard + 3h 0m Additional time* | 14h 15m Average total duration 13h 45m Onboard + 30m Additional time* |
![]() Most popular train company | ![]() Most popular airline | ![]() Most popular bus company |
Direct Options | Direct Options | Direct Options |
Live departures
Mainz Hbf to Milan Centrale train times
The table below shows live departures for Mainz Hbf to Milan Centrale trains for tomorrow, Friday 21 November. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
![]() | 05:40 Mainz Hbf | 8h10 | 13:50 Milan Centrale | 3 changes | |
This is the last train of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Mainz Hbf to Milan Centrale by train, coach or flight
Compare train, coach 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.
21 Nov
22 Nov
23 Nov
24 Nov
25 Nov
26 Nov
27 Nov
Journey information
Overview: Train from Mainz Hbf to Milan Centrale
Trains from Mainz Hbf to Milan Centrale run on average 1 times per day, taking around 7h 38m. Cheap train tickets for this journey start at £219 but you can travel from only £23 by flight.
The earliest train runs at 00:11, the last at 23:08. The fastest train covers the 507 km distance in 8h 10m.
Distance 507 km |
Average train duration 7h 38m |
Cheapest ticket price £219 |
Trains per day 1 |
Fastest train 8h 10m |
First train 00:11 |
Last train 23:08 |
Train companies: Deutsche Bahn, Trenitalia, Süwex from Mainz Hbf to Milan Centrale trainsDeutsche Bahn, Trenitalia, Süwex trains will get you between Mainz Hbf and Milan Centrale from £23. With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
Deutsche Bahn
A Bordrestaurant (restaurant car) where you can sit and eat.
A Bordbistro (bistro bar) with snacks, hot meals, and drinks to-go.
At-seat service in 1st class: staff will take your order and serve food/drinks directly to your seat.
Regional trains (RE / RB / S-Bahn):
No onboard catering.
You’re welcome to bring your own food and drinks.
Not included by default.
You can add a seat reservation when booking (recommended for busy routes).
Costs around €4.90 per seat (or €5.90 if booked separately later).
First Class:
Yes, always included in the ticket price.
Allowed for free if they can fit in a transport box (max. size: hand luggage).
Must stay in the box for the entire journey.
Large dogs:
Require a separate (paid) ticket — typically half the price of a regular second-class ticket.
Must be leashed and wear a muzzle while on the train.
Cannot sit on seats.
Assistance dogs:
Travel free of charge.
Do not need a muzzle or leash if medically not required.
Allowed to accompany the passenger at all times.
Trenitalia
Süwex
FAQs: Mainz Hbf to Milan Centrale train
Find answers to the most common questions about traveling from Mainz Hbf to Milan Centrale by train. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest train, the cheapest option, or tips for making the most of your visit at Milan Centrale, this guide helps you travel smarter and with confidence.

popular train stations
Important Stations and Airports in Mainz Hbf and Milan Centrale
- Monday: 06:00 - 21:15
- Tuesday: 06:00 - 21:15
- Wednesday: 06:00 - 21:15
- Thursday: 06:00 - 21:15
- Friday: 06:00 - 21:15
- Saturday: 07:00 - 19:00
- Sunday: 08:00 - 20:00
- Mangal
- Asia Wok
- Bistrorante Midi
- McDonald's
- Advena Europa Hotel
- GuestHouse Mainz
- Terminus
- Hotel Moguntia
- Mon - Sun: 05:50 - 22:20
- Free WiFi in the station.
- Provided by KiPoint and located on the ground floor, on the side of Piazza Luigi di Savoia. It is open every day from 06:00 to 23:00.
- Venchi
- Panzera Coffee
- Burger King
- Bar Motta
- Caffè Napoli
- VyTA Boulangerie
- Spontini
- Starbucks
- Dispensa Emilia
- McDonald's
- & many more
- Station is wheelchair accessible, has elevators and the Sala Blu, Trenitalia's office of assistance for disabled travelers, is next to Platform 4.
- Glam Hotel Milano
- NYX MIlan
- iQ Hotel Milano
- Mon - Sun: 05:50 - 22:20
- Located next to the ticket office on the ground floor in the shopping gallery.
- Metro lines: M2 (green), M3 (yellow)
- Tram lines: 1
- Bus lines: 5, 9, 10, 42, 81, 87, 152, 728, N26, NM2, NM3, Air Bus, Orio Shuttle
- Train lines: FR, FB, EC, Thello, XP2, R28, IC, ICN, RV, R, Regio, Italo
More options for your journey from Mainz Hbf to Milan Centrale
Here are some other resources that might have the information you need


