~140 km, one EU-internal border

ZagrebLjubljana

Full guide — every option compared, real schedules, real prices, real tips.

Check live prices →

Zagreb to Ljubljana is the easiest international hop in this part of Europe — 140 kilometres, one EU-internal border, finished in 2 hours by both bus and train. Buses run every 1–2 hours from Zagreb Bus Station and tickets start at €9 on FlixBus or Arriva. The train is slightly slower but more comfortable and arrives directly at Ljubljana's central station, a 5-minute walk to the river.

This is the route most Balkan road-trippers take to 'graduate' from the former-Yugoslav side into the Alps. The border between Croatia and Slovenia is open but Croatia has not fully joined Schengen yet for land crossings (full integration is rolling out), so expect a routine passport check that adds 10–20 minutes. Both bus and train do the run in about the same time; bus is cheaper, train is more relaxed. If you're booking last minute, the bus is the safer bet — there are 8–10 daily departures.

Options compared

Bus (FlixBus / Arriva)
2h15
from €9
Train (Croatian Railways)
2h20
from €11
Private transfer (1–4 pax)
1h45
from €130

Typical schedule

FlixBus
Daily
Hourly 06:00 → 22:00
Arriva
Daily
07:30 / 10:00 / 14:00 / 18:30
Croatian Railways IC
Daily
08:55 / 16:55
Slovenian Railways IC
Daily
11:00 / 19:50

Schedules vary by season — confirm tomorrow's exact departures on the live results page.

Border crossing

Croatia → Slovenia, EU-internal. Random ID/passport checks since Croatia's partial Schengen integration. Allow an extra 10–20 minutes. EU/UK/US/Canadian passports — no issues.

Arrival in Ljubljana

FlixBus and Arriva drop at Ljubljana Bus Station, attached to the train station. Both are a 10-minute walk to Prešeren Square and the old town. Trains arrive at the same complex.

When to go

Year-round, every day. Slovenia is gorgeous in autumn (Sept–Oct) and pretty in winter under snow. Avoid Friday evening departures from Zagreb — locals heading home for the weekend, full buses.

Insider tips

  • Buy bus tickets online — FlixBus and GetByBus both sell the same Arriva seats. Walk-up prices at the station are sometimes 30% higher.
  • Trains take Euros only on the Slovenian side, Kuna/Euro on the Croatian side. Buses accept card.
  • If you have time, stop in Samobor or Brežice for half a day — both pretty small towns on the route.
  • Ljubljana is tiny — walking distance from the station everywhere. Don't take a taxi.
  • Going on to Lake Bled? Take a Ljubljana–Bled bus from the same station, 1h15, €7.
Book this route

Live prices and schedules via Bookaway — instant e-ticket, no booking fees, mobile-friendly.

Book ZagrebLjubljana
Don't forget travel insurance

Cross-border medical cover for the Balkans from €1.50/day with SafetyWing. Cancel anytime.

Add insurance →
Croatia
Zagreb guide →
Slovenia
Ljubljana guide →

Nearby routes

Zagreb → Ljubljana — FAQ

How long is the bus from Zagreb to Ljubljana?+

2 hours 15 minutes including the routine border check. FlixBus and Arriva run 8–10 daily departures from Zagreb Bus Station.

How much is the Zagreb to Ljubljana bus?+

From €9 on FlixBus if you book a few days ahead. Walk-up tickets around €13. The train is €11–€18.

Train or bus Zagreb to Ljubljana?+

Bus is cheaper and runs more often. Train is more comfortable and slightly more scenic through the Slovenian countryside. Both take about 2h 15min.

Do I need a passport from Zagreb to Ljubljana?+

Yes — Croatia is not yet fully in Schengen for land borders, so a passport or EU ID card is required. Expect a quick random check at the crossing.

Is there a direct train from Zagreb to Ljubljana?+

Yes, four direct InterCity trains a day (two Croatian Railways, two Slovenian Railways). Journey time 2h 20min.

Can I day-trip Ljubljana from Zagreb?+

Easily — leave Zagreb at 07:30, get into Ljubljana around 10:00, return on the 18:00 bus. Plenty of time to see the old town, the castle and grab lunch by the Ljubljanica river.