Belgrade to Zagreb: Bus, Train & Times
No direct Belgrade-Zagreb train since 2020, so it is the bus (from 4.5 hours), the drive or a flight. Times, fares and which one to pick.
Is there a train from Belgrade to Zagreb? No, and that’s the first thing to get straight. The direct passenger train between the two capitals stopped during the pandemic in March 2020 and has never come back. A few ghost entries still float around old timetables, but no through train actually runs. So the honest answer for Belgrade to Zagreb is the direct bus: a FlixBus coach covers the roughly 390 km northwest in about five and a half hours, runs five or six times a day, and costs around 25 euros.
That leaves three real choices, not four. Most people default to the bus. A car is a touch quicker and buys you the freedom to stop along the way. A flight reads fastest on the departure board, right up until you add both airports to the clock. And the train, the option everyone keeps asking about, is off the table until someone rebuilds the service - an idea the EU has floated for around 2035, not a plan you can book against today. For now, plan around the coach.
The quick verdict
| Mode | Time | Price | Verdict |
|---|---|---|---|
| Bus (FlixBus) | From 4 h 30 min, at least 4 a day | From about 24 euros (checked 19 September 2026) | The one to book, straight into Zagreb’s bus terminal |
| Car | Under 4 hours, 393 km | Fuel + tolls, one border | Fastest door to door if you already have wheels |
| Flight | Under 1 hour flying | 90-200+ euros | Quick on paper, a half-day once both airports are counted |
| Train | No direct service | - | Off the table since 2020; the Croatia rail workaround is slower and dearer than the bus |
Want to be in Zagreb without doing the homework? Book the FlixBus and skip ahead to packing. Keep reading if your dates, budget or tolerance for a long coach ride change the calculation.
Why there is no train (and what “no train” really means)
This one catches people out, because the Belgrade to Zagreb line looks like it should be a flagship international route. It was, once. A joint service run by Srbija Voz and Croatian Railways (HŽPP) used to link the capitals in about eight hours, with carriages splitting at the border. Then March 2020 hit, the whole thing was suspended for COVID, and it was never switched back on. Meetings between the two railways have happened since, but the through train hasn’t returned, and there is no confirmed date for one.
The trap is that some journey planners and old timetables still show a train, because the entry was never fully deleted. If you see a rail option quoted for this route, treat it with suspicion. The nearest thing to a rail journey that actually works today is a relay: a bus across the border to Slavonski Brod in Croatia, then a Croatian train onward to Zagreb. It runs to nearly nine hours all in, costs more than the direct coach, and involves a change with luggage. There’s no reason to do it unless you are a rail completist collecting the Croatian network. The EU has talked about reconnecting Belgrade and Zagreb by rail as a longer-term ambition, floated for around 2035, but that’s a plan on paper, not a ticket you can buy.
The bus: the one to take
FlixBus has this corridor largely to itself, and it earns the recommendation on more than just being the only name on the board: at least four departures a day by its own count, overnight runs among them, cover the route as a genuine through service, not a relay with a change halfway. The departure point needs a small mental update if you last looked a while ago - the old riverside terminal nearer downtown was demolished, and coaches have left from a New Belgrade building since late 2024, so make sure whatever map you’re using points at the newer site. At the far end they pull into Zagreb’s central bus terminal, the Autobusni kolodvor, a short tram ride southeast of the main square.
The quickest service takes 4 hours 30 minutes by FlixBus’s own route page, and slower departures add an hour or more, so it is worth glancing at the time rather than booking on price alone. Fares are cheap and cheerful: the cheapest trip stood at 23.98 euros one way when we checked on 19 September 2026, and the price moves with the date, more for a busy departure booked last minute. Keep 300 dinars in cash as well: FlixBus notes that Belgrade’s bus station charges that platform fee at its counters, cash only. There’s a quirk worth knowing if your dates are flexible, midweek is cheaper, with Wednesday typically the lowest fare and Sunday the highest, since that’s when everyone heads back. Booking a day or two ahead online usually lands you the better fare, and it comes with free wifi, a power socket and a guaranteed seat as standard.
One thing applies to every land option here: this is a real border. Serbia sits outside the EU and the Schengen zone, and Croatia has been fully inside Schengen since 2023, so crossing at the main Batrovci-Bajakovo point on the motorway is a proper external frontier check, now running the EU’s EES biometric system on the Croatian side - see our EES border crossing guide for what that adds to a first crossing. Have your passport out and ready rather than packed away, and give the schedule some breathing room, since a busy summer weekend can stretch the border queue well past what the timetable assumes.
Driving: the fastest way, and the most flexible
If you have a car, the drive wins on time. It’s about 393 km and under four hours, almost all of it on motorway: the road northwest out of Belgrade, over the border near Batrovci, then Croatia’s A3 running arrow-straight across Slavonia into Zagreb. It is an easy, dull, efficient drive with no mountains and no drama.
Two toll systems catch drivers out, so know them before you go. On the Serbian side there is no vignette: you take a ticket entering the motorway and pay at a booth as you leave, based on distance. Croatia works the opposite way, with tolls collected on the A3 via booths or the ENC electronic tag, and the Zagreb-bound stretch is a paid road. Budget for both, plus fuel and the border wait. And if you are in a hire car, check with the rental company first that the paperwork allows you to take it across into Croatia, because not every Serbian rental permits an international crossing without prior arrangement. Our guide to getting around Serbia covers the vignette-free toll system and hire-car rules in more depth.
Not driving yourself doesn’t rule out a door-to-door ride. BlaBlaCar runs plenty of rides on this corridor, and when the timing lines up it beats every other mode on price, sometimes for as little as 20 euros - the trade-off is that the schedule is really whatever other drivers happen to have posted, so it suits an open itinerary better than a fixed one. If you need a guaranteed pickup instead, especially straight off a flight into Belgrade, a booked transfer handles the border and the logistics without any of that uncertainty.
By plane: a fast hop, a slow trip
Two airlines cover this route, Air Serbia and Croatia Airlines, and the flight itself is over in under an hour. That number is the trap. Run the actual clock instead: reaching Nikola Tesla airport with margin, checking in, clearing security, waiting at the gate, then landing and riding into central Zagreb from Franjo Tuđman airport - stack all of that up and you land on roughly four and three-quarter hours door to door, the same as driving and, once it’s all added together, a touch slower than a smooth bus run.
Money tells the same story as time. Fares typically sit in the 90 to 200 euro band and up, several times the coach fare, and while frequency holds up well in summer, with Air Serbia running somewhere around a dozen or so services a week, it thins out once the season turns. There are really only two good reasons to book this flight anyway: a rare cheap fare, or a connection through Zagreb airport onward to somewhere else, where staying airside beats hauling bags across town.
Make Zagreb more than a transfer
Whichever way you arrive, Zagreb is worth more than a quick stop. The bus terminal is a short tram ride from Ban Jelačić Square, and from there the compact upper town is a walk or a ride on the century-old funicular, one of the shortest public funiculars anywhere, up to the tiled roof of St. Mark’s Church and the viewpoint by the Lotrščak Tower. It’s a city built for a slow day: café terraces, a walkable core, and museums like the quietly brilliant Museum of Broken Relationships. For the full picture of what to see and where to base yourself, our sister site’s Zagreb travel guide is the place to plan the Croatian half of the trip.
So how should you travel?
For most trips, the coach settles it: from about 24 euros, at least four departures a day, from four and a half hours end to end, and the only real prep is checking that specific service’s journey time and keeping your passport within reach at the border. Reach for a car instead if the freedom to stop matters more than the ticket price, and just remember Serbia and Croatia charge their tolls in two different ways, so check your hire agreement covers the crossing. A flight only earns its keep when the fare is unusually low or Zagreb is a stopover on a longer trip, since a flying time under an hour still turns into a half-day once both airports are added in. The train stays off the list for now: nothing direct has run since 2020, and the rail workaround through Croatia costs more time and money than simply taking the bus.
If Zagreb is one leg of a wider Balkan trip, it pairs naturally with the rest of the ex-Yugoslav circuit. Our guide to Belgrade to Sarajevo covers the other classic overland hop, and if you’re still working out how to reach Serbia in the first place, how to get to Serbia maps out every way in.