The quickest most straightforward route is now via Warsaw, using a new direct Warsaw-Lviv sleeping-car introduced in December 2015.
It's also possible to go via Krakow, using the daily Krakow-Lviv sleeper train, an ideal route to stop off in Krakow and see two great cities on one trip. Indeed, it's possible to go London to Prague, sleeper train Prague to Krakow, then this sleeper train from Krakow to Lviv - three of Europe's best cities in one trip!
Option 3, via Brussels & Prague, using the Prague-Kiev sleeper - the cheapest option, with an evening in Brussels and dinner in Prague... Departures are daily all year round except Christmas Day. The Berlin-Warsaw Express has modern air-conditioned smooth-riding coaches in both 1st & 2nd class, most with compartments and side corridor like this, but some with seats in open-plan saloons.
You can choose which type you prefer when you book.
The Kiev Express has modernised Ukrainian sleeping-cars with 2-berth & 3-berth compartments.
All bedding is supplied, and washrooms and toilets are at the end of the corridor. A smartly-uniformed Ukrainian railways sleeper attendant travels with each car.
With an evening in Brussels, dinner in Prague, and high-quality air-conditioned trains with a comfy sleeper at night, what's not to like?
For accommodation in Lviv, whether your budget is 1 star or 5 star, check out the faded grandeur of the excellent and historic George Hotel.
This is the place to stay in Lviv, 35-70 per night.
An excellent sausage soup, a main course of schnitzel, potato and salad, all served on proper china, a beer and coffee all come to only around 10.
You must pay in cash, not credit card, but both euros and zlotys are accepted.