A 47-year-old man was badly hurt after his car crashed into two horses on the EN125 road in Portimão near the Arade bridge.
The accident happened at around 5am on Sunday when the man was apparently driving home to Silves after a party, says national tabloid Correio da Manhã.
Witnesses said that the driver did not see the animals before crashing into them.
The horses died while the man was rushed to Portimão Hospital where he was said to be in a stable condition.
GNR police are trying to identify the owner of the horses which did not have identification chips.
A similar incident occurred earlier last week when a car crashed into a horse on the IC-19 road between Lisbon and Sintra. The animal was killed and the driver taken to hospital.