How to get from Surabaya to Semarang by train

280km
12 per day
3h - 4h
Reverse route

Surabaya Pasar Turi and Semarang Tawang are two stations on the north coast line, and twelve trains run between them, taking between 2 hours 52 minutes and 4 hours 10 minutes. The first leaves Pasar Turi at 05:50 and the last at 22:10.

Have questions about your trip?Ask our Facebook group of fellow train travellers.
Join the group

Timetables

TrainSurabayaSemarang
99/102 Harina05:5009:25
263 Ambarawa Ekspres06:1510:25
39 Sembrani07:5011:01
1 Argo Bromo Anggrek09:1012:02
29F Argo Anjasmoro12:0515:20
265 Ambarawa Ekspres13:3017:40
163 Gumarang15:0018:52
95/98 Harina17:4521:23
34/31 Pandalungan19:4523:03
41 Sembrani20:1523:25
3 Argo Bromo Anggrek21:1500:07+1
148/145 Blambangan Ekspres22:1002:05+1

Average journey time: 3 hours 30 minutes

How to buy tickets

The easiest way to book Surabaya to Semarang train tickets is through 12Go, which shows availability and lets you pay by card.

Tickets go on sale 45 days in advance. For full details on booking windows, see the when to book Indonesia train tickets guide.

Surabaya to Semarang train tickets

Book with 12Go

About the route

The Argo trains include the Argo Bromo Anggrek at 09:10, the Sembrani at 07:50 and the Argo Anjasmoro at 12:05. The Ambarawa Ekspres at 06:15 and 13:30 and the Harina at 05:50 and 17:45 are the other daytime choices.

Many of these trains are part of longer services between Jakarta and Surabaya, which means you may be sharing the carriage with people who have been travelling for hours. Semarang Tawang is the main station, on the edge of the Old Town, and is a short walk from the Kota Lama. Surabaya Pasar Turi is on the north side of the city, so Surabaya Gubeng is the better choice for the east and south.


Have questions about your trip?Ask our Facebook group of fellow train travellers.
Join the group