The calculated distance (air line) between Puyo and Portoviejo is approximately 172 miles respectively 277 kilometers.
By car or train, the actual journey to Portoviejo is certainly longer, as only the direct route (as the crow flies) between Puyo and Portoviejo has been calculated here.
Air line (approximately)
277 kilometers
149 nautical miles