How to Travel from Budapest to Lviv by Train

train

Train travel in Europe is usually pretty easy, and there’s no place where it’s easier than in Budapest, which is one of the hubs of Europe’s railway networks. That is, unless you’re going to Ukraine.

For some reason, train tickets between Hungary and Ukraine cannot be purchased online, either from MÁV or Ukrainian Railways. It gets even more confusing if you’re going anywhere other than Kiev. For example, there’s purportedly a direct train between Budapest and Lviv, but what neither MÁV or Ukrainian Railways will tell you is that it’s a sleeper train to Kiev that drops you off in Lviv in the middle of the night, and is overpriced to boot at around $65-70 one-way. There are no direct flights between the cities, so that’s not an option either.

There’s actually a train itinerary you can take from Budapest to Lviv (and vice versa) that costs half as much and gets you to your destination much faster. You also don’t have to sleep on the train. Locals in eastern Hungary and western Ukraine use this trick all the time. Here’s what you do.

Budapest to Lviv by Train

  1. Purchase an online ticket from MÁV from Budapest-Keleti to Nyíregyháza, leaving at 9:30 and arriving at 12:29. Total cost for a second-class ticket (including the mandatory seat reservation): 5,020 Ft (about $18). First-class tickets are available from 6,010 Ft (about $22), and you can receive a three percent discount if you use e-ticketing instead of a printed ticket. Travel time is about three hours.
  2. Purchase an online ticket from MÁV from Nyíregyháza to Záhony, leaving at 12:48 and arriving at 13:57. Total cost: 1,300 Ft (about $5). No mandatory seat reservations are required and there’s only one carriage class. Like with the Budapest to Nyíregyháza ticket, you’ll get a three percent discount if you use e-ticketing. Travel time is just over an hour.
  3. Purchase a ticket from Záhony to Chop, leaving at 14:22 and arriving at 15:40. This must be done in person at the Záhony train station. Total cost: 715 Ft (about $3). MÁV accepts credit and debit cards, but bring some cash just in case (I don’t recall seeing an ATM at the Záhony station). Travel time is seventeen minutes (Ukraine is an hour ahead of Hungary).
  4. Purchase an online ticket from Ukrainian Railways from Chop to Lviv, leaving at 17:00 and arriving at 22:24. Total cost for a second-class ticket (excluding bed linen and tea): 145.32 UAH (about $6). First-class tickets are also available from 350.45 UAH (about $13). Travel time is five-and-a-half hours.

As you can see, you can spend as little as $36 getting from Budapest to Lviv, and if you prefer to ride first-class, you’ll still only pay $43, which is far less than the $65-70 that the “direct” train costs. You’ll also spend less time getting to Lviv (about nine-and-a-half hours), and you’ll get there with enough time to eat dinner, shower, and sleep in a nice, warm bed instead of some crappy Soviet-era sleeping car.

Lviv to Budapest by Train

  1. Purchase an online ticket from Ukrainian Railways from Lviv to Chop, leaving at 10:10 and arriving at 15:23. Total cost for a second-class ticket (excluding bed linen and tea): 112 UAH (about $4). First-class tickets are also available from 262.41 UAH (about $10). Travel time is just over five hours.
  2. Purchase a ticket from Chop to Záhony, leaving at 16:15 and arriving at 15:33. This must be done in person at the Chop train station. Total cost: 82.50 UAH (about $3). I have no idea if Ukrainian Railways accepts credit or debit cards and I didn’t see an ATM at the train station (there’s very little to see or do in Chop), so bring cash. Travel time is seventeen minutes.
  3. Purchase an online ticket from MÁV from Záhony to Nyíregyháza, leaving at 16:03 and arriving at 17:12. Total cost: 1,300 Ft (about $5). No mandatory seat reservations are required and there’s only one carriage class. Per usual, you’ll get a three percent discount if you use e-ticketing. Travel time is just over an hour.
  4. Purchase an online ticket from MÁV from Nyíregyháza to Budapest-Keleti, leaving at 17:26 and arriving at 20:30. Total cost for a second-class ticket (including the mandatory seat reservation): 5,020 Ft (about $18). First-class tickets are available from 6,010 Ft (about $22), and again, you can receive a three percent discount if you use e-ticketing. Travel time is about three hours.

Interestingly, going from Lviv to Budapest is slightly cheaper: you only need to pay a maximum of $34 for second-class carriage the whole way, or $40 for first-class carriage on the Lviv to Chop and Nyíregyháza to Budapest legs.

Other bits of advice if you’re planning to go between Budapest and Lviv:

  • Bring something to eat. There’s no refreshments on any of the trains and the only stops where you could possibly have enough time to get something are Chop and Záhony, neither of which have anything aside from vending machines (the cafe at the Záhony station has been closed every time I’ve been through there).
  • The Ukrainian Railways workers know zero English, so learn some Ukrainian or Russian before you go and/or have Google Translate on your phone ready.
  • The Záhony train station is the only one where bathrooms are free. Everywhere else, you have to pay.

Have a fun trip!

Read Next: Thoughts on Visiting Lviv, Ukraine