The average train between Porto and Guimarães takes 1h 31m and the fastest train takes 1h 16m. There is a train service every few hours from Porto to Guimarães. The journey time may be longer on weekends and holidays; use the search form on this page to search for a specific travel date.
Trains run hourly between Porto and Guimarães. The earliest departure is at 6:03 AM in the morning, and the last departure from Porto is at 11:04 PM which arrives into Guimarães at 12:35 AM. All services require a transfer at São Bento and take an average of 1h 31m. The schedules shown below are for the next available departures.

1h 37m • 1 change

1h 28m • 1 change

1h 29m • 1 change

1h 16m • 1 change

1h 38m • 1 change

1h 33m • 1 change

1h 34m • 1 change

1h 20m • 1 change

1h 38m • 1 change

1h 33m • 1 change

1h 34m • 1 change

1h 20m • 1 change

1h 35m • 1 change

1h 36m • 1 change

1h 32m • 1 change

1h 36m • 1 change
Want to know about travelling from Porto to Guimarães? We have put together a list of the most frequently asked questions from our users such as: What is the cheapest mode of transport? What is the quickest option? How much do tickets usually cost? and many more.
No, there is no direct train from Porto to Guimarães. However, there are services departing from Porto station and arriving at Guimarães station via Guimaraes. The journey, including transfers, takes approximately 1h 31m.
Porto to Guimarães train services, operated by Metro do Porto, depart from Porto Sao Bento station.
Porto to Guimarães train services, operated by Metro do Porto, arrive at Guimaraes station.
The distance between Porto and Guimarães is 24.1 km. The road distance is 60 km.
Comboios de Portugal operates a train from Porto Sao Bento to Guimaraes hourly. Tickets cost €6–12 and the journey takes 1h 14m.