The calculated distance (air line) between Viñales and Cárdenas is approximately 162 miles respectively 260 kilometers.
By car or train, the actual journey to Cárdenas is certainly longer, as only the direct route (as the crow flies) between Viñales and Cárdenas has been calculated here.