The cheapest and fastest trains from Budapest to Vilnius
Cheapest price
$64
Average price
$64
Fastest journey
1 d 9 h 17 m
Average duration
1 d 9 h 17 m
Trains per day
1
Distance
910 km
The best way to find a cheap train ticket from Budapest to Vilnius is to book your journey as far in advance as possible and to avoid traveling at rush hour.
The average ticket from Budapest to Vilnius will cost around $64 if you buy it on the day, but the cheapest tickets can be found for only $64.
It's difficult to get from Budapest to Vilnius without transferring at least once.
.png)
.png)
Travel Information
Compare train, bus, and flight for Budapest to Vilnius
Omio recommends booking the bus as it is the most popular option from Budapest to Vilnius among Omio's users. If you are prioritising price take the bus with prices starting from $57. For those with little time consider booking a flight which can get you there in 3h 2m. In case you are seeking to minimise your carbon footprint the bus is your best bet as it emits only 0.9 - 2.3kg. The ticket price range depends on the travel mode: a bus costs an average of $57, and a flight costs an average of $34.
Distance: 565 miles (910 km)
Compare train with
| Train | Most popular Bus | Flight |
|---|---|---|
$105 Average price | $102 Average price Cheapest | $216 Average price |
32h 8m Average total duration 31h 38m Onboard + 30m Additional time* | 20h 9m Average total duration 19h 39m Onboard + 30m Additional time* | 6h 2m Average total duration Fastest 3h 2m Onboard + 3h 0m Additional time* |
- CO2 emissions | 0.9 - 2.3kg CO2 emissions Lowest | 2.7 - 5.5kg CO2 emissions |
Direct Options | Direct Options | Direct Options |
Additional time: Average total travel duration to departure point, security checks and transfers.
Live departures
Budapest to Vilnius train times
The table below shows live departures for Budapest to Vilnius trains for tomorrow, Friday, March 20. You can also manually refresh the results below to see updated train journeys.
| Provider | Departs | Duration | Arrives | Transfers | Tickets |
|---|---|---|---|---|---|
![]() | 8:12 AM Budapest | 33h17 | 5:29 PM Vilnius | 1 transfer | |
This is the last train of the day. | |||||
Find all the dates and times for this journey
Compare prices and tickets Budapest to Vilnius 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.
Mar 21
Mar 22
Mar 23
Mar 24
Mar 25
Mar 26
Mar 27
Mar 28
Mar 29
Mar 30
Mar 31
Apr 01
Apr 02
Apr 03
Apr 04
Apr 05
Apr 06
Apr 07
Apr 08
Apr 09
Apr 10
Journey information
Overview: Train from Budapest to Vilnius
Trains from Budapest to Vilnius run on average 2 times per day, taking around 31h 38m. Cheap train tickets for this journey start at $60 (€49) but you can travel from only $34 (€28) by flight.
The earliest train runs at 08:12, the last at 11:30. The fastest train covers the 565 miles (910 km) distance in 29h 59m.
Distance 565 miles (910 km) |
Average train duration 31h 38m |
Cheapest ticket price $60 (€49) |
Trains per day 2 |
Fastest train 29h 59m |
First train 08:12 |
Last train 11:30 |
Train companies: Hungarian Railways (MÁV) from Budapest to Vilnius trainsHungarian Railways (MÁV) trains will get you between Budapest and Vilnius from $34 (€28). With over 1000 travel companies on Omio, you can find the best train times and tickets for your trip.
Hungarian Railways (MÁV)
FAQs: Trains from Budapest to Vilnius
Find answers to the most common questions about traveling from Budapest to Vilnius 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 Vilnius, this guide helps you travel smarter and with confidence.

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