Viana do Castelo è una fermata ferroviaria nel nord del Portogallo sulla Linha do Minho, la ferrovia costiera e di frontiera che collega Porto con Valenca e la Galizia. La città ha una stazione ferroviaria passeggeri principale, Viana do Castelo, con ulteriori fermate locali nel comune come Darque e Areosa. CP - Comboios de Portugal gestisce i principali servizi nazionali, mentre anche il servizio transfrontaliero Porto-Vigo Celta utilizza il corridoio del Minho.
I treni da Viana do Castelo sono principalmente servizi Regional e InterRegional, con collegamenti a lunga percorrenza effettuati tramite Porto Campanha o Nine. La stazione di Viana do Castelo gestisce le principali partenze per Porto, Caminha, Valenca e le città intermedie lungo la costa del Minho. La città non dispone di un collegamento ferroviario dedicato con l'aeroporto; i passeggeri normalmente si collegano in treno tramite Porto per proseguire verso l'aeroporto.
Le linee ferroviarie da Viana do Castelo si dirigono verso sud in direzione di Barcelos, Nine, collegamenti con Braga e Porto, verso nord in direzione di Caminha e Valenca, e attraverso il corridoio di confine verso Vigo in Spagna. Le destinazioni ferroviarie più popolari includono Porto, Barcelos, Braga, Valenca, Caminha e Vigo. Prenota online i treni da e per Viana do Castelo su Rail Monsters.