Important!: THIS IS A CROSS-BORDER (=INTERNATIONAL) JOURNEY
There are two approaches:
DIRECT TRAIN
You have two options, both high-speed trains: either AVE (RENFE, Spanish operator) or TGV INOUI (SNCF, French operator). Each one has its own website, or you can also try trainline.com
INDIRECT TRAINS
Alternatively, you can go with the French regional train service TER to Cerbere -at the border- and there, at 5 minutes walk, switch to Rodalies in Portbou, the RENFE regional train service in Catalonia.
TER, which in France is the equivalent to RENFE's in Spain: commuting and regional trains. There's no "European" info website for these types of services. Thus, for the French stretch, you can use TER's website https://www.sncf-connect.com/en-en/ter, and for the other stretch you can use https://rodalies.gencat.cat/en/inici/index.html
RODALIES
Schedules Portbou-Girona -so yeah… take all of that with a pinch of salt, given what I said earlier
https://rodalies.gencat.cat/en/horaris/index.html?origen=79315&desti=79300&dataViatge=2026-04-10&horaInici=0
(Change the date to your convenience!)
Fares: at the bottom of the page above.
Summarising: 9€ for MD trains (=less stops in between) and 7€ for R trains (=stops at every station)
IMPORTANT:
Travelling by train in Catalonia these days? Bit of a gamble, honestly.
For reasons I won’t get into now, the RENFE-Rodalies network is, well… a mess. Years of neglect to the infrastructure by the Spanish government, especially here in Catalonia, have dragged the service down to the point where it’s hardly not fit for purpose. And just when you think it couldn’t get worse, the pile-up of incidents over the last couple of years has forced them to finally deal with it… by launching works and repairs on pretty much every line at the same time. Great timing.
The result? Right now, taking a train on RENFE Rodalies feels like an adventure sport: delays, cancellations, replacement buses packed like sardine tins, or buses that just… don’t show up when they’re supposed to. To be fair, there is another operator, Ferrocarrils de la Generalitat de Catalunya (FGC), running different lines on a separate network, and those work like a Swiss clock (for example, the classic tourist trip to Montserrat). But that’s a different story and doesn't serve the area you're now interested in.
So yeah, a commuting train trip in Catalonia with Rodalies right now might go so-so and get you there more or less in time, or with a short delay… or it might go completely sideways and leave you stranded halfway, waiting for a bus with everyone else who had the same bad idea.
Your trip might turn out acceptable… or a complete train wreck. Sad to say, but that’s the daily reality for millions of Catalans right now.
If you decide to use RODALIES, keep an eye to the Service Updates here: https://rodalies.gencat.cat/en/alteracions_del_servei/index.html
It’s happening on the high-speed lines too, just a bit less. So much so that RENFE used to have this nice policy where they’d refund your ticket if an AVE train was more than X minutes late… yeah, that’s been quietly scrapped. A Madrid–Barcelona train that’s supposed to take 2h30 can now take 3… or even 4. And the best part? It’s completely random. Some trains run quite on time, others… not so much. Kind of like a lottery, but without the prize.
And bus? sadly not much better. Historically, the demand for a bus line in Portbou has been negligible, so the existing service isn't very convenient. There is a bus line, SARFA, but it connects to Figueres only. There you'd need to switch to another line, TEISA, to continue to Girona. Perhaps not the most convenient if you're carrying luggage up and down.