The calculated distance (air line) between Caxias and Portimão is approximately 115 miles respectively 186 kilometers.
By car or train, the actual journey to Portimão is certainly longer, as only the direct route (as the crow flies) between Caxias and Portimão has been calculated here.