Quick introduction
Zagreb divides naturally into two levels. Gornji Grad (Upper Town) holds the oldest part of the city — St Mark's Church with the distinctive tiled roof showing the Croatian coat of arms and the Slavonian shield, the Lotrščak Tower, and the city's original medieval layout. Getting there is done by the Uspinjača funicular, which runs 66 metres on a gradient of 52 degrees and takes under a minute. It has been running since 1890 and is commonly cited as one of the world's shortest public cable cars. A single ride costs around 0.66 EUR and is worth taking at least once.
Dolac market sits just below, at the transition point between upper and lower town. It opens Monday to Saturday, with the outdoor section busiest before noon. The stalls sell seasonal fruit, vegetables, local cheese, and produce brought in from Dalmatia. This is where Zagreb locals shop, which makes it feel functional rather than curated. The covered indoor section below the main terrace holds meat and dairy.
Tkalčićeva street is where most of the outdoor terrace culture happens. The street is pedestrianized, cafe-dense, and busiest on weekend evenings from late afternoon onward. The Museum of Broken Relationships on the edge of Gornji Grad has collected donated objects from ended relationships and the handwritten texts explaining each one. It consistently surprises visitors who arrive expecting a novelty exhibit and leave having found something more considered. Zagreb also has several excellent rooftop bars on hotels and commercial buildings in the Donji Grad (Lower Town) area — a different city mood than the terrace streets.
Still deciding if Zagreb is the right base overall? Open the full Zagreb destination guide first, then come back here to compare neighborhoods and properties.
Best neighborhoods
Upper Town Edge
The upper town edge (Gornji Grad fringe) is the most atmospheric base in Zagreb -- near St. Mark's Church, the Lotrscak Tower, and the historic streets of the upper town. Boutique hotels and apartments here run 90 to 160 EUR per night. Best for: couples, travelers who want Zagreb to feel historic and characterful from the first evening.
Lower Town
Lower Town (Donji Grad) is the main commercial zone with the best concentration of hotels, the Dolac market, tram access, and the Museum of Broken Relationships nearby. The most practical first-time base. Hotels cost 90 to 160 EUR per night. Best for: first-time visitors, anyone using Zagreb as a route hub, travelers who want easy transport and maximum restaurant options.
Kaptol
Kaptol is a quiet area immediately adjacent to the Cathedral and the upper town, with a local residential character. Slightly removed from the busiest tourist streets but within easy walking distance of everything. Hotels and apartments run 80 to 140 EUR per night. Best for: travelers who want historic access without staying in the most tourist-heavy blocks.
Britanski Trg Side
Britanski Trg is a neighborhood with one of Zagreb's best Sunday antique and vintage markets. More local in feel than the immediate centre, with good cafes and easy tram access to the main sights. Apartments cost 70 to 120 EUR per night. Best for: travelers who want a neighborhood feel and easy access to local daily life.
How to choose the right base in Zagreb
The best place to stay in Zagreb depends less on star rating and more on the shape of the trip. If you want atmosphere first, staying near Upper Town Edge is often the cleanest answer. If you care more about sleep quality, easier arrivals, or slightly better value, Lower Town or a comparable nearby area usually works better. The goal is not to book the objectively best hotel. The goal is to book the base that matches your pace.
Common booking mistakes to avoid
The most common mistake is choosing a property only because the nightly rate looks attractive, while ignoring how the location changes the trip. In Zagreb, that often leads to extra transfers, weaker evening atmosphere, or a stay that feels less aligned with the reason you chose the city in the first place. A second common mistake is leaving the booking too late, especially if the most useful neighborhoods only have a handful of strong-value options.