Surabaya
Surabaya
Yogyakarta
Yogyakarta
Train Driving

Surabaya to Yogyakarta

Updated: 28 May 2026

The route from Surabaya to Yogyakarta is one of the most popular rail corridors in Indonesia. You will travel across the heart of East and Central Java, passing through lush rice paddies and small towns. The train journey is highly recommended for its comfort and the ability to see the Javanese countryside. Alternatively, you can drive via the Trans-Java Toll Road, which offers a faster transit time. Yogyakarta, known as the cultural capital, is easily accessible from Surabaya via these two primary modes.

Total Distance: Driving distance 330 km, straight-line air distance 270 km.
Fastest Way
Train (Argo Wilis), taking approximately 4 hours 30 minutes.
Cheapest Way
Train (Economy class), costing around IDR 150,000.
Compare Surabaya to Yogyakarta Routes
Train
Direct
Driving
Direct
Duration 4 hours 30 mins 5 hours
Avg Price IDR 150,000 - 450,000 IDR 300,000 - 500,000 (fuel + toll)
Operator Argo Wilis, Sancaka Private Car Rental
Route Surabaya Gubeng Station to Yogyakarta Tugu Station. Trans-Java Toll Road (Surabaya-Solo-Yogyakarta).
Tip The Argo Wilis train offers the most comfortable executive class experience. Use the Solo-Yogyakarta exit for the fastest route into the city.
Travel Tips
  • Train Booking
    Book your train tickets at least two weeks in advance, especially for weekend travel.
  • Station Arrival
    Arrive at Surabaya Gubeng Station at least 45 minutes before your scheduled departure.
  • Local Transport
    Use the TransJogja bus system or ride-hailing apps to navigate the city efficiently.
  • Food
    Try the local specialty, Gudeg, a jackfruit stew that is iconic to Yogyakarta.
  • Luggage
    Keep your luggage within the allowed weight limit for trains to avoid extra charges.
Safety Tips
  • Pickpockets
    Be vigilant in crowded areas like Malioboro Street, especially during peak tourist hours.
  • Road Safety
    If driving, be aware of heavy motorcycle traffic in Yogyakarta city center.
  • Emergency
    Keep the number for local tourist police handy if you encounter any issues.
  • Health
    Stay hydrated and use sunscreen, as the sun can be very strong during the day.
People Also Ask
  • How long is the train from Surabaya to Yogyakarta?
    The train journey takes between 4 hours 30 minutes and 5 hours 30 minutes.
  • Is there a flight from Surabaya to Yogyakarta?
    Yes, there are direct flights from Juanda Airport to Yogyakarta International Airport (YIA).
  • Which train is best for this route?
    The Argo Wilis is widely considered the best train for comfort and speed.
  • Can I take a bus to Yogyakarta?
    Yes, buses are available from Bungurasih Terminal, but they take longer than the train.
  • What is the distance by road?
    The road distance is approximately 330 kilometers via the Trans-Java Toll Road.
Quick Info
  • From Surabaya, East Java, Indonesia
  • To Yogyakarta, Yogyakarta, Indonesia
  • Modes
Best Time to Travel

June to August, when the weather is dry and perfect for exploring the temples of Borobudur and Prambanan.

Things to Do in Yogyakarta
1
Borobudur Temple
The world's largest Buddhist temple. It is a UNESCO World Heritage site located just outside Yogyakarta.
2
Prambanan Temple
A massive 9th-century Hindu temple complex. It is famous for its towering spires and intricate stone carvings.
3
Malioboro Street
The heart of Yogyakarta's shopping and street food scene. It is best explored on foot in the evening.
4
Kraton Yogyakarta
The royal palace of the Sultan of Yogyakarta. It serves as a center for Javanese culture and history.
Tags
Surabaya to Yogyakarta train Surabaya to Jogja travel train to Yogyakarta Surabaya to Yogyakarta distance Java train travel Gubeng to Tugu station best way to Yogyakarta Surabaya to Yogyakarta bus