Fastest way from Surabaya to Jakarta: Flight, about 1h 30min (from €48). Cheapest: Train, from €6 (about 7h 43min – 10h 3min).
There are 4 ways to get from Surabaya to Jakarta
Select an option below to see the route details and compare prices. Secure booking via our partner 12go.asia.
Activate an eSIM before you go: internet the moment you land, no SIM to swap, zero roaming fees.
Practical tips
Domestic flights in Indonesia, especially popular routes like Surabaya to Jakarta, can fill up quickly. Booking a few days or weeks ahead will secure better prices and ensure you get your preferred departure time. Check sites like Traveloka or 12go.asia.
If opting for the bus, look for well-known operators such as Lorena or Rosalia Indah. They offer more comfortable seats, better safety standards, and generally stick to schedules, reducing the risk of unexpected delays or uncomfortable journeys.
An overnight bus can be tiring. Bring snacks, water, a neck pillow, and entertainment. Dress in layers as air conditioning can be strong. A good quality eye mask and earplugs will also help ensure you get some rest on the journey.
For flights, aim to be at Juanda International Airport (SUB) at least 1.5 to 2 hours before departure. For buses, arrive at Bungurasih Terminal 30-45 minutes before scheduled departure to find your bus and settle in without rush.
During Indonesian holidays (Eid al-Fitr, Christmas, New Year), travel routes can become extremely busy. Prices may surge and availability may drop. Book well in advance and expect potential delays if travelling during these times.
The journey experience
Navigating Indonesia’s vast archipelago can feel daunting, especially when trying to figure out the best way to get from Surabaya to Jakarta. Forget the guesswork of whether you need a fast boat, a bus-and-ferry combo, or a flight for this leg. Our goal is to give you clear, real-world durations, making sure you know exactly what to expect from door-to-door, without any nasty surprises from traffic or unexpected delays. We’ve been there, and we know that comparing every option side-by-side with genuine insights is key to a smooth journey.
For your trip from Surabaya to Jakarta, you essentially have several main options: bus, flight, train, or a bus + ferry combination. The bus journey offers a way to cover the distance, taking 7h–11h and starting from €14 (typically up to €22), often with comfortable sleeper options if you choose a reputable operator. A train takes 8h–10h, from €6 (typically up to €26). Alternatively, a flight will get you there in about 1 hour 30 minutes, with prices starting from €48 (typically up to €60), significantly cutting down travel time and often being the preferred choice for those on a tighter schedule or looking to avoid long road trips. There's also a bus + ferry option, taking 24h–29h, from €17 (typically up to €18).
To avoid losing a whole day to travel, our advice is clear: for this particular route, flying is both the fastest and often a budget-friendly option if your budget allows. It saves you valuable time that could be spent exploring. However, if you enjoy the journey and prefer ground travel, a bus or train is a perfectly viable and comfortable choice. Always book ahead online for peace of mind, especially during peak seasons, ensuring instant confirmation and avoiding potential overcharges at local ticket counters.
Frequently asked questions — Surabaya → Jakarta
The 'best' way depends on your priorities. For speed and convenience, flying from Juanda International Airport (SUB) to Soekarno-Hatta International Airport (CGK) is ideal, taking only about 2 hours. If you're on a budget and don't mind a longer journey, an overnight bus is a popular and cost-effective option, taking around 10 hours.
Bus tickets from Surabaya to Jakarta generally range from €15 to €25, depending on the operator and class of service (e.g., executive, sleeper). Flights are usually more expensive, costing between €45 and €80, but prices can vary significantly based on how far in advance you book and the airline.
A direct flight takes about 1 hour and 30 minutes in the air. Add airport transfers (1-2 hours) and check-in/security (1-2 hours), and your total door-to-door time is roughly 4-6 hours. For buses, expect a total travel time of 7h–11h, including any short stops along the way.
It's highly recommended to book both flights and bus tickets in advance, especially during peak travel seasons or weekends. This guarantees your seat, often secures better prices, and avoids the hassle of sold-out routes. Online platforms like 12go.asia offer instant confirmation, making planning much easier.
Why visit Jakarta?
- ✓ Explore the historic Old Town (Kota Tua) with its Dutch colonial architecture and Fatahillah Square.
- ✓ Visit Monas (National Monument) for panoramic city views and a historical museum.
- ✓ Discover local arts and crafts at Pasar Seni Ancol or high-end shopping malls.
- ✓ Indulge in diverse Indonesian cuisine, from street food to fine dining.
- ✓ Experience vibrant nightlife and entertainment options across the city.
When to visit Jakarta?
TROPICAL MONSOON CLIMATE
June to September — dry season with less humidity, ideal for city exploration and outdoor activities.
What to do in Jakarta?
Local experiences, must-see sights and activities selected for you
How long to visit Jakarta?
For an independent traveler, 2 to 3 full days are ideal to explore Jakarta's main attractions, including historical sites, museums, and local markets. If you have more time, consider a day trip to the Thousand Islands. Focus on one area per day to avoid traffic.
Related searches