The cheapest and fastest trains from Barcelona to Florence
Cheapest price
£265
Average price
£265
Fastest journey
1 d 8 h 22 m
Average duration
1 d 8 h 22 m
Trains per day
1
Distance
789 km
The best way to find a cheap train ticket from Barcelona to Florence is to book your journey as far in advance as possible and to avoid travelling at rush hour.
The average ticket from Barcelona to Florence will cost around £265 if you buy it on the day, but you can find cheap train tickets today for only £265.
To travel from Barcelona to Florence you need to make at least 3 changes.


Travel Information
Compare train, coach and flight for Barcelona to Florence
Omio recommends booking the flight as it is the most popular option from Barcelona to Florence among Omio's users. If you are prioritising price take the coach with prices starting from £46. For those with little time consider booking a flight which can get you there in 3h 15m. In case you are seeking to minimise your carbon footprint the coach is your best bet as it emits only 0.8 - 2.0kg. The ticket price range depends on the travel mode: a coach costs an average of £46, and a train costs an average of £268.
Distance: 789 km
Compare train with
| Train | Most popular Flight | Coach |
|---|---|---|
£268 Average Price | £107 Average Price | £97 Average Price Cheapest |
32h 52m Average total duration 32h 22m Onboard + 30m Additional time* | 6h 15m Average total duration Fastest 3h 15m Onboard + 3h 0m Additional time* | 17h 28m Average total duration 16h 58m Onboard + 30m Additional time* |
- CO2 emissions | 2.4 - 4.7kg CO2 emissions | 0.8 - 2.0kg CO2 emissions Lowest |
Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Live departures
Barcelona to Florence train times
The table below shows live departures for Barcelona to Florence trains for today, Thursday 20 November. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Changes | Tickets |
|---|---|---|---|---|---|
![]() | 09:28 Barcelona | 32h22 | 17:50 Florence | 3 changes | |
This is the last train of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Barcelona to Florence 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.
20 Nov
21 Nov
22 Nov
23 Nov
24 Nov
25 Nov
26 Nov
27 Nov
28 Nov
29 Nov
30 Nov
01 Dec
02 Dec
03 Dec
04 Dec
05 Dec
06 Dec
07 Dec
08 Dec
09 Dec
10 Dec
How far in advance should I book train tickets from Barcelona to Florence?
Journey information
Overview: Train from Barcelona to Florence
Trains from Barcelona to Florence run on average 1 times per day, taking around 32h 22m. Cheap train tickets for this journey start at £268 but you can travel from only £23 by flight.
The earliest train runs at 00:40, the last at 20:15. The fastest train covers the 789 km distance in 32h 22m.
Distance 789 km |
Average train duration 32h 22m |
Cheapest ticket price £268 |
Trains per day 1 |
Fastest train 32h 22m |
First train 00:40 |
Last train 20:15 |
Train companies: TGV INOUI from Barcelona to Florence trainsTGV INOUI trains will get you between Barcelona and Florence from £23. With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
TGV INOUI
FAQs: Barcelona to Florence train
Find answers to the most common questions about traveling from Barcelona to Florence 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 Florence, this guide helps you travel smarter and with confidence.

More options for your journey from Barcelona to Florence
Here are some other resources that might have the information you need
