GoAsia
How to Get from Surabaya to Yogyakarta

How to Get from Surabaya to Yogyakarta

Last updated: October 15, 2026
Contents

Surabaya is East Java's capital and Yogyakarta, or Jogja, is the cultural center of Java with its royal court and arts scene. Between them lies a landscape of rice paddies and volcanic silhouettes. The two main ways to travel are the train and the bus.

Train, Bus, Flight and Ferry tickets

Booking and payment are handled by 12Go, not GoAsia. We may receive a commission when you book through our links.

Surabaya to Yogyakarta by Bus

Booking platforms list bus tickets at about $7 to $21 (October 2026), with listed travel times of 3 hours 40 minutes to 7 hours 30 minutes depending on traffic and the service.[1] The listings include Executive, Luxury and Premium seat services.[1]

Executive and Luxury Services

Executive buses have reclining seats and air conditioning. The Luxury class offers a more spacious seating arrangement, and booking platforms list one Luxury departure at night, at 22:30.[1] Premium seat services run throughout the day.

Surabaya to Yogyakarta by Train

Booking platforms list train tickets at about $6 to $35 (October 2026), with listed travel times of 4 hours 30 minutes to 6 hours 4 minutes.[1] The trains have Executive and Economy classes. Executive carriages have reclining seats, while Economy seats are more upright and the space is tighter. The price depends on the class and how early you book.

Comparing Your Options

ModePrice (USD)DurationComfort
Bus (Executive, Luxury, Premium seat)About $7 to $21[1]3h 40min to 7h 30minModerate to high
Train (Economy and Executive)About $6 to $35[1]4h 30min to 6h 4minModerate to high

Tips for Traveling from Surabaya to Yogyakarta

  • Book in advance: This is a busy corridor, and trains in particular can sell out on weekends and public holidays.
  • Bring a layer: Trains and buses are often strongly air conditioned, so a light jacket or sarong is useful.
  • Check the station: Surabaya and Yogyakarta each have more than one station, so check the station name on your ticket before you head out.
  • Snacks and water: Bring your own water and snacks for the journey.
  • Arrive early: Be at the station or bus terminal well before departure to handle check-in without stress.

Timetable

Bus Surabaya - Yogyakarta $ 7.01–21.30 3h 40m – 7h 30m
  • →  Executive 06:20, 06:45, 07:10, 07:15, 08:00, 08:40, 08:45, 09:15, 09:25, 09:55, 09:57, 10:00, 10:10, 10:30, 10:45, 10:55, 11:00, 11:15, 11:25, 11:27, 11:30, 12:15, 12:40, 13:00, 13:50, 14:45, 15:20, 16:45, 16:50, 17:30, 18:45, 18:55, 18:57, 19:00, 19:30, 20:15, 20:30, 20:40, 20:45, 21:15, 21:20, 23:15
  • →  Luxury 22:30
  • →  Premium seat 05:00, 06:00, 07:00, 08:00, 09:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00, 19:30, 21:00
Train Surabaya - Yogyakarta $ 14.66–34.82 5h 8m – 6h 4m
  • →  Economy CB 12:57, 16:45
  • →  Executive AA 12:57, 16:45
  • →  Economy CA 12:57, 16:45
  • →  Executive AC 12:57, 16:45
  • →  Economy CC 12:57, 16:45
  • →  Economy CD 12:57, 16:45
  • →  Executive AB 12:57, 16:45
  • →  Executive AD 12:57, 16:45
  • →  Economy C 12:57
  • →  Executive A 12:57
Train Surabaya - Jogja $ 6.02–34.82 4h 30m – 5h 18m
  • →  Economy C 14:15, 14:39
  • →  Economy CB 12:57
  • →  Executive AA 12:57
  • →  Economy CA 12:57
  • →  Executive AC 12:57
  • →  Economy CC 12:57
  • →  Economy CD 12:57
  • →  Executive AB 12:57
  • →  Executive AD 12:57

Frequently Asked Questions

How can I book tickets from Surabaya to Yogyakarta?

Use the booking tool on this page to compare the transport options currently available from Surabaya to Yogyakarta, including current prices and schedules.

What is the cheapest way to get from Surabaya to Yogyakarta?

Booking platforms list train tickets from about $6 and bus tickets from about $7 (October 2026). The price depends on the class and the service.

What is the fastest way to get from Surabaya to Yogyakarta?

Booking platforms list the shortest bus trips at about 3 hours 40 minutes, against about 4 hours 30 minutes for the fastest train. Actual times depend on traffic and the service.

How long does it take to get from Surabaya to Yogyakarta?

Booking platforms list 3 hours 40 minutes to 7 hours 30 minutes by bus and 4 hours 30 minutes to 6 hours 4 minutes by train.

Is the train ride from Surabaya to Yogyakarta scenic?

Yes, the route passes rice fields and rural villages, with views of Java's volcanic peaks on clear days.

Which train station in Yogyakarta is more central?

Tugu Station is close to Malioboro Street. Yogyakarta has more than one station, so check the station name on your ticket.

Are there night options for this route?

Booking platforms list a Luxury bus departure at 22:30 (October 2026), which lets you arrive in Yogyakarta early the next morning.

Sources and background

Numbers in the text such as [1] refer to these sources.

  1. [1] 12Go: 12Go timetable: Surabaya to Yogyakarta. Retrieved October 15, 2026.

Guide prices and journey times are indicative, not live quotes. A booked package may include transfers and waiting time as well as the main journey. Check the selected offer, pickup point and current conditions before booking.