
There is no dedicated Semarang to Malang train. Instead, you ride one of the Jakarta to Malang services through Semarang, and which one you pick decides the route. The journey takes roughly six to nine hours and runs from around 380km to 440km depending on the line.
Inland via Solo: the Matarmaja, Majapahit and eksekutif Brawijaya turn south-east from Semarang through Gundih to Solo Jebres, then follow the southern line to Madiun and drop south through Kediri and Blitar into Malang. It is the longer way round but avoids Surabaya altogether.
Along the coast via Surabaya: the Jayabaya keeps to the northern line to Surabaya Pasarturi, calls at Gubeng, and climbs the last stretch through Bangil and Lawang to Malang. It is usually the quickest option, with new-generation ekonomi and eksekutif carriages.
Check your Semarang station. Matarmaja and Jayabaya use Semarang Poncol, west of the old town; Brawijaya uses Semarang Tawang. Because these trains start in Jakarta, most eastbound departures pass through Semarang late in the evening or in the small hours, so this is in practice an overnight trip.
Check current departures and fares in Access by KAI. For the opposite direction, see Malang to Semarang. If you would rather travel by day, take the Semarang to Surabaya trains and change at Gubeng for Malang.
Journey times vary by service and season. Confirm against current schedules before booking.
Categories
Last updated 10 Oct 2026
© Indonesia By Train 2026. All rights reserved