The cheapest and fastest trains from Surabaya to Madiun
Cheapest price
€16
Average price
€16
Fastest journey
1 h 37 m
Average duration
1 h 53 m
Trains per day
10
Distance
142 km
The best way to find a cheap train ticket from Surabaya to Madiun is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Surabaya to Madiun will cost around €16 if you buy it on the day, but the cheapest tickets can be found for only €16.
Of the 10 trains that leave Surabaya for Madiun on Wed, Aug 05, 10 travel direct so it’s quite easy to avoid journeys where you’ll have to change along the way.
On Wed, Aug 05 the direct trains cover the 142 km distance in an average of 1 h 53 m but if you time it right, some trains will get you there in just 1 h 37 m .
On Wed, Aug 05 the slowest trains will take 2 h 1 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.
5:00 AM2h34Surabaya Gubeng7:34 AMMadiun€161One-way0 transfers
7:00 AM1h55Surabaya Gubeng8:55 AMMadiun€161One-way0 transfers
8:30 AM1h37Surabaya Gubeng10:07 AMMadiun€161One-way0 transfers
11:15 AM1h55Surabaya Gubeng1:10 PMMadiun€161One-way0 transfers
1:01 PM3h03Surabaya Gubeng4:04 PMMadiun€161One-way0 transfers
8:30 AM1h37Surabaya Gubeng10:07 AMMadiun€161One-way0 transfers
7:00 AM1h55Surabaya Gubeng8:55 AMMadiun€161One-way0 transfers
11:15 AM1h55Surabaya Gubeng1:10 PMMadiun€161One-way0 transfers
8:00 PM1h57Surabaya Gubeng9:57 PMMadiun€161One-way0 transfers
7:20 PM2h01Surabaya Gubeng9:21 PMMadiun€161One-way0 transfers
Travel Information
Compare train and bus for Surabaya to Madiun
Omio recommends booking the bus as it is the most popular option from Surabaya to Madiun among Omio's users. If you are prioritising price take the bus with prices starting from €2. For those with little time consider booking a train which can get you there in 2h 21m. The ticket price range depends on the travel mode: a bus costs an average of €2, and a train costs an average of €16.
Distance: 88 miles (142 km)
Compare train with
| Train | Most popular Bus | Driving |
|---|---|---|
€16 Average price | €4 Average price Cheapest | €25 Average price (fuel + tolls) |
2h 51m Average total duration Fastest 2h 21m Onboard + 30m Additional time* | 2h 57m Average total duration 2h 27m Onboard + 30m Additional time* | 2h 25m Average total duration (door-to-door) |
Direct Options | Direct Options | Direct Options |
This is compared to other travel options from Surabaya to Madiun:
A bus is €12 less than a train for this route with tickets for a train from Surabaya to Madiun costing on average €16.
Other travel options to Madiun take longer:
Bus takes on average 2h 27m.
The journey is about 4m faster (2h 21m by train vs 2h 25m by car) and roughly €9 cheaper once you factor in fuel and tolls (€16 vs €25). You'll also arrive in the city centre rather than hunting for parking, and you can work, read, or watch the landscape go by instead of concentrating on the road.
Direct services run with Kereta API.
Driving is still worth considering if you want to stop along the way or need a car once you arrive.
Live departures
Surabaya to Madiun train times
The table below shows live departures for Surabaya to Madiun trains for today, Tuesday, August 4. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
![]() | 2:18 PM Surabaya Gubeng | 3h13 | 5:31 PM Madiun | 0 transfersDirect | |
![]() | 4:28 PM Surabaya Gubeng | 2h55 | 7:23 PM Madiun | 0 transfersDirect | |
![]() | 4:30 PM Surabaya Gubeng | 2h21 | 6:51 PM Madiun | 0 transfersDirect | |
![]() | 7:20 PM Surabaya Gubeng | 2h01 | 9:21 PM Madiun | 0 transfersDirect | |
![]() | 8:00 PM Surabaya Gubeng | 1h57 | 9:57 PM Madiun | 0 transfersDirect | |
![]() | 5:00 AM Surabaya Gubeng | 2h34 | 7:34 AM Madiun | 0 transfersDirect | |
![]() | 7:00 AM Surabaya Gubeng | 1h55 | 8:55 AM Madiun | 0 transfersDirect | |
![]() | 8:30 AM Surabaya Gubeng | 1h37 | 10:07 AM Madiun | 0 transfersDirect | |
![]() | 11:15 AM Surabaya Gubeng | 1h55 | 1:10 PM Madiun | 0 transfersDirect | |
![]() | 1:01 PM Surabaya Gubeng | 3h03 | 4:04 PM Madiun | 0 transfersDirect | |
Find all the dates and times for this journey
Compare prices and tickets Surabaya to Madiun by train or bus
Compare train and bus 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.
Aug 05
Aug 06
Aug 07
Aug 08
Aug 09
Aug 10
Aug 11
Journey information
Overview: Train from Surabaya to Madiun
Trains from Surabaya to Madiun run on average 8 times per day, taking around 2h 21m. Cheap train tickets for this journey start at €16 but you can travel from only €2 by bus.
There are 8 trains per day. The earliest train runs at 05:00, the last at 20:00. The fastest train covers the 88 miles (142 km) distance in 1h 37m.
Distance 88 miles (142 km) |
Average train duration 2h 21m |
Cheapest ticket price €16 |
Trains per day 8 |
Direct trains 8 |
Fastest train 1h 37m |
First train 5:00 AM |
Last train 8:00 PM |
Cheapest Month Jun |
Cheapest Day Sat |
High Season Apr - Jun |
Low Season Jul - Sep |
Busiest Day Tue |
Least Busy Day Tue |
Train companies: Kereta API from Surabaya to Madiun trainsKereta API trains will get you between Surabaya and Madiun from €2. With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
Kereta API
FAQs: Trains from Surabaya to Madiun
Find answers to the most common questions about traveling from Surabaya to Madiun by train. 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 train, the cheapest option, or tips for making the most of your visit at Madiun, this guide helps you travel smarter and with confidence.

More options for your journey from Surabaya to Madiun
Here are some other resources that might have the information you need
