Ljubljana to Zagreb route guide

Route Guide

Ljubljana to Zagreb: Trains, Buses & Flights Compared

Every way to get from Ljubljana to Zagreb — times, prices, and which option is actually worth it.

By TravelTrack Editorial TeamPublished 8 min read

Quick answer

The best option for most travelers is the direct high - speed train from Ljubljana to Zagreb Glavni Kolodvor. It takes approximately 2h 20m to 2h 30m door - to - door, including transfers to/from stations, and costs around €18 - 25 if booked a few days in advance.

Overview

Traveling between Slovenia's charming capital, Ljubljana, and Croatia's vibrant hub, Zagreb, presents a classic European transport choice: speed vs. scenery, and cost vs. convenience. While the direct train offers a remarkably relaxed journey, the bus often wins on frequency and can sometimes be marginally cheaper, especially if you're booking last minute. The key trade - off on this route often revolves around border crossing formalities and whether you prefer the comfort of rail or the flexibility of road.

Best way

The direct train operated by Slovenske železnice (Slovenian Railways) and HŽ Putnički prijevoz (Croatian Railways) is your best bet. It typically takes 2h 20m from Ljubljana’s main station to Zagreb’s main station, avoiding city traffic entirely. Booking 2 - 3 days in advance generally secures the best fares. The non - obvious advantage is the smooth border crossing: passport control happens onboard, so you don't need to disembark, unlike with buses, which can face longer waits. Ensure you have your passport readily accessible.

Cheapest

For the absolute cheapest fare, look for early morning or late - night FlixBus services, which can occasionally drop to €9 - 12. However, this often means a 05:00 departure or arriving past midnight, and you'll sacrifice several hours (total journey 3h 30m to 4h+) and comfort. The marginal saving over an advance - purchase train ticket (€18 - 25) is usually not worth the extra travel time and the less comfortable journey, especially considering the slower, potentially longer border crossing by bus. If your budget is extremely tight, these fares appear roughly 2 - 3 weeks in advance, but they often sell out quickly.

Fastest

The fastest door - to - door option is the direct train, which clocks in at about 2h 20m from Ljubljana center to Zagreb center. While there are no direct flights, even if there were, the time spent on airport transfers, security, and check - in for a flight would easily exceed the train's journey time, making air travel a significantly slower option for this short distance. The train offers a seamless experience with minimal fuss.

Most scenic

The train journey offers surprisingly pleasant scenery, particularly the first hour heading southeast out of Ljubljana towards Zidani Most. Sit on the left side for the best views of the Sava River valley, winding past small villages and forested hills. While not a dramatic alpine vista, it's a far more relaxing and picturesque ride than the highway by bus. It's definitely worth the minimal extra cost over the cheapest bus for this gentle visual appeal and comfort.

Compare options

ModeDurationCostComfortBest for
Slovenian/Croatian Railways direct train2h 20m€18 - 25★★★★☆Comfort, smooth border, solo travelers
FlixBus Express2h 30m - 3h 0m€15 - 25★★★☆☆Budget - conscious, frequent departures
Nomago Bus2h 45m - 3h 15m€16 - 28★★★☆☆Flexibility, alternative to FlixBus
Rental Car1h 45m - 2h 30m€50 - 100/day + tolls/fuel★★★★☆Families, multi - stop road trippers, ultimate flexibility

Slovenian/Croatian Railways direct train

Duration: 2h 20m · Cost: €18 - 25 (advance)

Depart from Ljubljana Glavna Postaja (main station), arriving directly at Zagreb Glavni Kolodvor (main station). This is the most comfortable and efficient option. Book tickets 2 - 3 days in advance online via the Slovenian Railways website for the best price. Standard class offers good legroom and freedom to move around; there's no dedicated baggage car so keep luggage with you. Best for comfort - conscious travelers and those who value time and a smooth border crossing. Onboard passport control means no disembarking.

FlixBus Express

Duration: 2h 30m - 3h 0m · Cost: €15 - 25

FlixBus offers multiple daily departures from Ljubljana Bus Station (next to the train station) to Zagreb Bus Station (Autobusni Kolodvor). These are generally modern coaches with Wi - Fi and power outlets. Booking online 1 - 2 weeks out yields good prices. Luggage is usually one checked bag in the hold and one carry - on. Be prepared for potential queues at the Croatia - Slovenia border, as all passengers disembark for passport checks, which can add significant time to the journey. A good option for budget travelers who prioritize flexibility over absolute speed.

Nomago Bus

Duration: 2h 45m - 3h 15m · Cost: €16 - 28

Nomago, a Slovenian operator, runs several daily buses between the two capitals, using modern and comfortable coaches. Departures are from Ljubljana Bus Station to Zagreb Bus Station. Similar to FlixBus regarding luggage allowances and on - board amenities. Their pricing can sometimes be slightly more competitive for last - minute bookings compared to FlixBus, but always check both. Border crossing procedures are identical to FlixBus, requiring all passengers to get off for passport control. A solid alternative if FlixBus times or prices aren't suitable, particularly for those who prefer a Slovenian company.

Rental Car

Duration: 1h 45m - 2h 30m · Cost: €50 - 100/day + tolls/fuel

Renting a car provides ultimate flexibility, especially if you plan to explore beyond Zagreb or stop along the way. Pick up at Ljubljana Airport or city center. Remember to factor in a one - way international drop - off fee if not returning in Croatia, which can be substantial. You'll need a vignette for Slovenian highways (€15 for 7 days) and pay tolls in Croatia. Border crossing by car is usually quicker than by bus but still requires passport checks. Best for groups, families with luggage, or those planning a larger road trip through the Balkans.

Step-by-step

  1. Step 1: Book your train ticket online. Go to the Slovenian Railways website (SŽ) at least 2 - 3 days in advance for the cheapest "Special Zagreb" fare, which typically costs €18 - 25. While you can buy at the station, prices might be higher on the day. Do not bother with third - party sites like Rail Europe; they often add fees and don't show all local fares. For more tips on booking European trains, see our guide on how to book European train tickets cheaply.
  2. Step 2: Arrive at Ljubljana Glavna Postaja. Aim to be at the station 20 - 30 minutes before departure, especially if you need to print your ticket or buy snacks. Ljubljana's main station is central and easy to navigate. Grab a coffee or a traditional burek from one of the kiosks. The station can get busy, but platforms are usually announced clearly.
  3. Step 3: Board the train and find your seat. Your ticket will likely not have a specific seat reservation unless you paid extra (which isn't typically necessary for this route). Find any available seat in your class. The direct trains are usually modern intercity carriages. Stow your luggage in the overhead racks or at the end of the carriage. For a pleasant view, try to sit on the left side of the train when facing forward.
  4. Step 4: Prepare for border control onboard. Roughly 1 hour into the journey, after passing Novo Mesto, Slovenian border police will board the train (usually at Dobova) followed by Croatian police (at Harmica). Have your passport or EU ID card ready. They will collect and return passports, usually without requiring you to disembark. This process can take 15 - 30 minutes, so don't be alarmed by the stop.
  5. Step 5: Arrive at Zagreb Glavni Kolodvor. The train pulls directly into Zagreb's main train station, which is located in the city center, a short walk or tram ride from most major attractions and hotels. There are usually taxis waiting outside, and public transport is easily accessible. Check tram line 2 or 6 for quick connections into the main square, Trg Bana Jelačića.

Where to stop

  • Novo Mesto, Slovenia: About 45 minutes into the train journey. The train briefly stops here, offering glimpses of this charming town on the Krka River. If driving, it's a pleasant detour for a coffee and a stroll through the old town.
  • Samobor, Croatia: If you are driving, consider a slight detour (approx. 20 - 30 minutes off the direct highway). Samobor is a picturesque historic town known for its custard cream cake (Kremsnita) and medieval castle ruins. It’s a lovely, authentic Croatian stop before hitting bustling Zagreb.

Travel tips

  • Check border status for buses: Before booking a bus, especially during peak summer or holiday periods, check for real - time border crossing delays online. Websites like HAK (Croatian Auto Club) often provide live camera feeds and wait times for major crossings like Obrežje/Bregana, which is the main crossing point for buses. This can save you hours.
  • Train passport ready: Keep your passport or EU ID card easily accessible on the train. Slovenian and Croatian border police will collect and return it while you remain seated, but fumbling for it slows everyone down. For non - EU citizens, ensure you understand Schengen 90/180 rule implications if you're continuing your journey.
  • Consider a taxi from Zagreb Bus Station: If arriving late by bus at Zagreb's Autobusni Kolodvor, consider taking a taxi to your accommodation. While public transport is available, the area can feel a bit deserted late at night, and taxis are generally affordable (€7 - 15) and safer. Always ask for the meter or agree on a price first.
  • Train vs. Bus station location: Ljubljana's train and bus stations are right next to each other. In Zagreb, both are relatively central, but the train station (Glavni Kolodvor) is arguably more conveniently located for immediate access to the city center's main sights compared to the bus station (Autobusni Kolodvor), which requires a short tram ride or walk.
  • No luggage limit on train: Unlike buses that often have strict luggage policies (one checked bag included, extras cost money), trains typically allow you to bring as much as you can comfortably carry. This is a significant advantage for travelers with multiple bags or oversized items.
  • Buy train tickets from official sites: Always purchase train tickets directly from the Slovenian (SŽ) or Croatian (HŽPP) railway websites, or at the station. Third - party resellers like Trainline or Omio often charge commissions and may not display the cheapest local fares. For cost - saving tips, revisit how much a trip to Croatia costs.
  • Rental car international drop - off fees: If considering a rental car, be acutely aware of one - way international drop - off fees. These can add €150-€300+ to your rental cost, often negating any perceived flexibility benefits unless you plan an extensive road trip through the Balkans and return the car in another country that doesn't incur a cross - border fee. Check policies carefully.
  • Eurail/Interrail passes: If you have a Eurail or Interrail pass, this route is covered. You will not need a separate reservation for the direct train, making it a particularly good value. However, double - check specific pass conditions, as some high - speed routes do require reservations. See our Eurail & Interrail passes guide for more details.

FAQs

  • How long does the train from Ljubljana to Zagreb take?
    The direct train journey from Ljubljana Glavni Kolodvor to Zagreb Glavni Kolodvor typically takes 2 hours and 20 minutes to 2 hours and 30 minutes, including border checks.
  • How much does a train ticket from Ljubljana to Zagreb cost?
    An advance purchase train ticket (Special Zagreb fare) costs around €18 - 25. If bought on the day, it can be €25 - 30 or more.
  • Is there a direct bus from Ljubljana to Zagreb?
    Yes, both FlixBus and Nomago operate multiple direct bus services daily between Ljubljana Bus Station and Zagreb Bus Station. The journey duration is usually 2 hours 30 minutes to 3 hours, plus potential border delays.
  • How long is the border crossing between Slovenia and Croatia by bus?
    Border crossing by bus can take anywhere from 15 minutes to over an hour during peak times, as all passengers must disembark for individual passport control. Trains typically experience quicker onboard checks.
  • Do I need a visa to travel from Slovenia to Croatia?
    Both Slovenia and Croatia are in the European Union. However, while Slovenia is part of the Schengen Area, Croatia is not yet fully integrated into Schengen (as of late 2023 for land borders). Therefore, passport control is still performed. EU/Schengen citizens typically only need an ID card, while other nationalities require a passport and potentially a visa depending on their origin country. Check official government travel advice for current requirements.
Weekly newsletter

Get weekly route guides and smarter travel tips.

One short email a week. New routes, fresh itineraries, and the practical stuff guidebooks miss.

No spam. Unsubscribe anytime.