In spring 2023, with a gifted PR Eurail Pass in my pocket, I embarked on a journey from Finland to Portugal overland. With 15 travel days covered within 2 months of use (415€), I kicked off the adventure with a ferry to Germany before starting an all-train route to Lisbon. In this post, I share the itinerary of my overland journey from Helsinki to Lisbon, the sunkissed capital of Portugal.
How to get from Finland to Portugal overland?
1. Ferry from Helsinki to Travemünde, Germany
How long: circa 30 hours
The first stage of my journey from Helsinki to Lisbon was taking the Finnlines ferry to Travemünde, Germany. This is the least hassle-free way to exit Finland (compared to for example travelling first through the Baltic states and then Poland) but it is also a bit costly. A windowless cabin starts from 280 euros, whereas a cabin with a window sets you back almost 350 euros. If you are on a budget, opt for a shared 4-person cabin (female / male separation) for the price of 144 euros. The Finnlines ferry leaves from Vuosaari harbour at 15.00 and arrives at Travemünde the next evening at 21.00. There’s a bus stop opposite the ferry terminal and Travemünde’s multiple hotels are an easy reach away.
To read a more detailed guide on how to take this ferry, read this guide.



2. A train from Travemünde to Delft, Holland
How long: 7-8 hours
I stayed only for the night in Travemünde, wanting to reach Delft where I explored the city for a couple of days – see my guide to the city at this link. To get to Delft, you first need to take the train from Lübck-Travemünde Strand station to Hamburg. There’s a train every hour from early morning till midnight. After Hamburg, there’s a change in Osnabrück and then one more in The Netherlands to reach Delft. Delft is famous for the Delft Blue porcelain and as Johanne’s Vermeer’s home city. I stayed at Hotel Arsenaal, an old warehouse by a canal and recently turned into a hotel. I have a good friend living in The Netherlands so I stayed with her family for almost a week, exploring the southern parts of the country, cycling around Maastricht and walking around Thorn, famed for its cute white houses.


3. A train from The Netherlands to Cologne
How long: for example, train from Maastricht 1,5 hours
The Netherlands was one of my favourite countries to explore by train on this journey as the cities are so well connected and the trains run very frequently. If you are travelling through Europe by train, I highly recommend exploring The Netherlands outside Amsterdam, too. Apart from Delft, I’ve enjoyed Den Hague and Haarlem on my previous visits, and seeing Utrecht is still on my list. In the Netherlands, I didn’t use my Eurail pass to move around as the tickets were relatively cheap and I wanted to save the travel dates for more expensive stretches. After a week or so in The Netherlands, I was joined by my friend and we headed to Cologne – just to see the cathedral.
4. The Romantic Rhine line from Cologne to Basel
How long: 3 hours 40 minutes
Apart from wanting to see the Cologne Cathedral, I also wanted to stop by Cologne so that I could take the train that follows the Rhine to get to Basel, Switzerland. This line is called the Romantic Rhine, and if you’re into cute villages and hilltop castles, put this journey on your bucket list. After the train journey, we explored Basel for four days, as I was there on a writing trip. I have been to Basel before and it’s one of my favourite cities in Europe. There’s a lot of history, the Old Town is super beautiful and you can make some tasty foodie finds, too. For more information on how to spend a couple of days in Basel, read this article I wrote for The Sunday Times.




5. A train from Basel to Girona
How long: around 10 hours
I contemplated taking a more direct route to Girona from Basel, but as there would have been only 8 minutes to change in one station, I chose to travel via Paris. Yes, map-wise it doesn’t seem to make much sense, but it was an easy trip. First off to Paris, then waiting for my connection and soon I found myself in rainy Girona. The trains were comfortable and I was able to work. I had planned to stay in Girona, but as the weather was so gloomy I decided to continue the next day as I was craving for some sun already.
Do you like what you are reading? You can support my train travel tips by buying me a coffee! Just click here.



6. A train from Girona to Valencia
How long: the fastest and direct line takes just under 4 hours
And sun I got! Valencia was a great choice instead of Barcelona, which at times can feel a bit overcrowded. Again, I was in Valencia for an article and after three nights, decided to stay for two more as there was just so much to explore. I ate (a lot!), I drank (again, a lot! Mainly horchata, the local milky almond drink) and I walked and cycled. Valencia is fun to explore as it is so versatile: you can have beachy vibes, world-class modern art, historic courtyards and vibrant city life. This, also, was a great pit stop on my journey from Helsinki to Lisbon overland.
7. A train from Valencia to Lisbon via Madrid
How long: Valencia–Madrid trip takes 2 hours, Madrid–Lisbon almost 10 hours
I took a 2-hour train from Valencia to Madrid, where I stayed at Hotel Charmartin The One for one night, conveniently located near the train station. The next morning, I caught an early train to Lisbon. The journey from Madrid to Lisbon wasn’t as straightforward as the previous ones. You’ll need to change trains in the border town of Badajoz. This time, there was some construction work on the tracks so a bus took me further into Portugal, where, eventually I got into an old-fashioned train that trudged slowly across the rural landscape. It was a beautiful ride though, and I’d do it again any day. I got into a normal train at Entroncamento and made it to Lisbon around 7 pm, only an hour or two behind schedule.


Travelling from Finland to Portugal overland allows you to stop in several big-hit cities as well as make less-known discoveries. For another type of overland route, see my guide on how to travel from Helsinki to Istanbul on a budget.