The cheapest and fastest buses from Semarang to Surabaya
Cheapest price
€5
Average price
€12
Fastest journey
5 h 23 m
Average duration
5 h 29 m
Buses per day
24
Distance
259 km
The best way to find a cheap bus ticket from Semarang to Surabaya is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Semarang to Surabaya will cost around €12 if you buy it on the day, but the cheapest tickets can be found for only €5.
Of the 24 buses that leave Semarang for Surabaya on Tue, Nov 18, 24 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Tue, Nov 18 the direct buses cover the 259 km distance in an average of 5 h 29 m but if you time it right, some buses will get you there in just 5 h 23 m .
On Tue, Nov 18 the slowest buses will take 5 h 38 m and usually involve a change or two along the way, but you might be able to save a few pennies if you’re on a budget.
WIDJI LESTARI
SUGENG RAHAYU
SUGENG RAHAYU
WIDJI LESTARI
SUGENG RAHAYU
WIDJI LESTARI
WIDJI LESTARI
WIDJI LESTARI
SUGENG RAHAYU
SUGENG RAHAYUTravel Information
Compare train, bus, and flight for Semarang to Surabaya
Omio recommends booking the bus as it is the most popular option from Semarang to Surabaya among Omio's users. If you are prioritising price take the bus with prices starting from €8. For those with little time consider booking a flight which can get you there in 2h 44m. The ticket price range depends on the travel mode: a bus costs an average of €8, and a flight costs an average of €37.
Distance: 259 km
Compare bus with
Most popular Bus | Flight | Train |
|---|---|---|
€9 Average price Cheapest | €69 Average price | €16 Average price |
5h 44m Average total duration 5h 14m Onboard + 30m Additional time* | 5h 44m Average total duration Fastest 2h 44m Onboard + 3h 0m Additional time* | 4h 18m Average total duration 3h 48m Onboard + 30m Additional time* |
Direct Options | Direct Options | Direct Options |
Live departures
Semarang to Surabaya bus times
The table below shows live departures for Semarang to Surabaya buses for today, Monday, November 17. You can also manually refresh the results below to see updated bus journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
![]() | 9:00 PM Semarang | 6h00 | 3:00 AM Surabaya Kota | 0 transfersDirect | |
WIDJI LESTARI | 9:00 PM Semarang, Terminal Terboyo | 5h23 | 2:23 AM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
0 | 9:30 PM Semarang | 19h00 | 4:30 PM Surabaya | 0 transfersDirect | |
WIDJI LESTARI | 9:30 PM Semarang, Terminal Terboyo | 5h23 | 2:53 AM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
0 | 10:30 PM Semarang | 19h00 | 5:30 PM Surabaya | 0 transfersDirect | |
WIDJI LESTARI | 10:30 PM Semarang, Terminal Terboyo | 5h23 | 3:53 AM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
0 | 11:00 PM Semarang | 19h00 | 6:00 PM Surabaya | 0 transfersDirect | |
| Tuesday, November 18 | |||||
SUGENG RAHAYU | 5:00 AM Semarang, Terminal Mangkang | 5h38 | 10:38 AM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
SUGENG RAHAYU | 7:00 AM Semarang, Terminal Mangkang | 5h38 | 12:38 PM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
HARAPAN JAYA | 7:30 AM Semarang, Candisari (SPBU Dokter Wahidin) | 7h00 | 2:30 PM Waru, Medaeng | 0 transfersDirect | |
SUGENG RAHAYU | 9:00 AM Semarang, Terminal Mangkang | 5h38 | 2:38 PM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
ELING TRANS | 11:00 AM Kota Semarang | 5h43 | 4:43 PM Surabaya | 0 transfersDirect | |
SUGENG RAHAYU | 11:00 AM Semarang, Terminal Mangkang | 5h38 | 4:38 PM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
SANTOSO TRAVEL | 11:00 AM Kota Semarang | 5h43 | 4:43 PM Surabaya | 0 transfersDirect | |
PAPUMA TOUR & TRAVEL | 11:00 AM Kota Semarang | 5h43 | 4:43 PM Surabaya | 0 transfersDirect | |
GEMA PRATAMA TRANS TOUR & TRAVEL | 12:00 PM Kota Semarang | 5h43 | 5:43 PM Surabaya | 0 transfersDirect | |
NUSANTARA INDAH TRAVEL | 12:00 PM Kantor Perwakilan Semarang | 5h44 | 5:44 PM Agen Surabaya | 0 transfersDirect | |
SUGENG RAHAYU | 12:30 PM Semarang, Terminal Mangkang | 5h38 | 6:08 PM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
NUSA BALI | 1:30 PM Semarang, Terminal Mangkang | 5h38 | 7:08 PM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
HARAPAN JAYA | 3:00 PM Semarang, Candisari (SPBU Dokter Wahidin) | 7h00 | 10:00 PM Waru, Medaeng | 0 transfersDirect | |
HARAPAN JAYA | 3:00 PM Semarang, Candisari (SPBU Dokter Wahidin) | 7h00 | 10:00 PM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
SUGENG RAHAYU | 3:00 PM Semarang, Terminal Mangkang | 5h38 | 8:38 PM Surabaya, Terminal Purabaya/Bungurasih | 0 transfersDirect | |
HARAPAN JAYA | 4:30 PM Semarang, Candisari (SPBU Dokter Wahidin) | 7h00 | 11:30 PM Waru, Medaeng | 0 transfersDirect | |
This is the last bus of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Semarang to Surabaya by train, bus, or flight
Compare train, bus, and flight prices over the next three weeks. See the best deals at a glance, find the lowest fares, and choose the option that fits your budget.
Nov 18
Nov 19
Nov 20
Nov 21
Nov 22
Nov 23
Nov 24
Journey information
Overview: Bus from Semarang to Surabaya
Buses from Semarang to Surabaya run on average 13 times per day, taking around 5h 14m. Cheap bus tickets for this journey start at €8 if you book in advance.
There are 13 buses per day. The earliest bus runs at 00:20, the last at 23:30. The fastest bus covers the 259 km distance in 5h 38m.
Distance 259 km |
Average bus duration 5h 14m |
Cheapest ticket price €8 |
Buses per day 13 |
Direct buses 13 |
Fastest bus 5h 38m |
First bus 00:20 |
Last bus 23:30 |
Bus providers: Harapan Jaya, Damri from Semarang to SurabayaYou can travel by bus between Semarang to Surabaya with Harapan Jaya, Damri for as low as €8. When you search for schedules and tickets, Omio will show you the best journey
Harapan Jaya
Damri
FAQs: Bus from Semarang to Surabaya
Find answers to the most common questions about traveling from Semarang to Surabaya by bus. From journey times and ticket prices to direct connections, first and last departures, and even whether the route is scenic, our FAQs cover everything you need to plan your trip. Whether you’re looking for the fastest bus, the cheapest option, or tips for making the most of your visit at Surabaya, this guide helps you travel smarter and with confidence.

When departing from Semarang, you have various coach station options to start your route from including Semarang, Bus Terminal Terboyo, Kota Semarang, Semarang, Candisari (SPBU Dokter Wahidin) and Semarang, Bus Terminal Mangkang. When arriving in Surabaya, you can end your journey in coach stations like Surabaya Kota and Surabaya, Waru.
Passengers board the coach most frequently from Semarang, Bus Terminal Terboyo, which is located around 5.6 miles (9 km) away from the city centre, and they get off the coach at Surabaya Kota, located 0.8 miles (1.3 km) away from the city centre.
To find the cheapest bus tickets for your trip from Semarang to Surabaya, follow these tips:
Start your search now and compare ticket prices to find the best deal!
- Harapan Jaya
- Luggage included in fare; specific size/type not provided.
- Harapan Jaya
- Excess luggage and bulky luggage allowed for an additional fee
popular bus stations
Popular bus stations from Semarang to Surabaya
- 24 hours
- Free Wi-Fi available throughout the station.
- Parking available on-site for a fee.
- Food stalls and small cafes are available inside the station.
- Taxis available at the station entrance.
- Accessible facilities including ramps and elevators.
- Public toilets are available for a small fee.
- Bus: 1, 2, 3, 4
- Train: Kereta Api Indonesia
- 06:00-22:00
- Available at the gas station parking area
- Small food stalls and warung nearby
- Available at the gas station area
- Basic ramps
- Available at the gas station
- Bus: Trans Semarang Corridor I, Local buses
- 24 hours
- Free Wi-Fi
- Parking available nearby.
- Several food stalls and cafes are available inside the station.
- Available outside the station.
- Elevators, ramps
- Available with a small fee for use.
- Bus: 1, 2, 3, 4
- Train: Kereta Api Indonesia
- 24 hours
- Free Wi-Fi available throughout the terminal.
- Parking available on-site.
- Food stalls and small eateries are available inside the terminal.
- Taxis available at the station entrance.
- Accessible facilities including ramps and designated seating areas.
- Toilets are available for public use.
- Bus: 1, 2, 3
- 05:00-22:00
- Available for cars and motorcycles
- Local food stalls and small restaurants around the terminal
- Available at designated taxi stand
- Wheelchair ramps
- Public toilets available
- Bus: Trans Semarang Koridor I, City Bus
- 05:00-21:00
- Free Wi-Fi available
- Available in front of terminal
- Local food stalls and small restaurants around terminal
- Available at designated taxi stand
- Basic ramps available
- Public toilets available
- Bus: Damri, Suroboyo Bus
- Angkot: Various routes
- 05:00-21:00
- Free Wi-Fi available
- Available in front of terminal
- Local food stalls and small restaurants nearby
- Available at designated taxi stands
- Wheelchair ramps
- Public toilets available
- Bus: City Transport Lines, Inter-city Buses
- Train: Nearby Surabaya Kota Station
- 04:00-24:00
- Free Wi-Fi available in terminal
- Large parking area available for cars and motorcycles
- Food court and various food stalls available
- Available at designated taxi stand
- Wheelchair ramps, assistance available
- Public toilets available with fee
- Bus: City buses, intercity buses
- Angkot (shared taxi)
- 24 hours
- Free Wi-Fi available
- Available parking area for cars and motorcycles
- Food court and various food stalls available
- Available at designated taxi stand
- Wheelchair ramps available
- Public toilets available
- Bus: City bus, Inter-city bus
- Angkot (public minivan)
More options for your journey from Semarang to Surabaya
Here are some other resources that might have the information you need









