Castro Marim sits just off the A22 motorway, the main east-west route across the Algarve, about 50 km from Faro airport and 5 km from the Spanish border. The town is best reached by car — there is no train station, and bus services from Vila Real de Santo António (the next town east) and Faro are infrequent.
From Spain, cross the Guadiana on the EN125 bridge at Ayamonte and follow signs north for 3 km. The old car ferry from Ayamonte to Vila Real is still running for foot passengers and offers a slower, prettier crossing.