Rescuers in a helicopter spotted the 33-year-old man lying near a stream on Thursday in mountains north of Udine, in north-eastern Italy.
He was covered in leaves, but they had seen his foil blanket nearby.
The man told officials he had “slipped for several metres in a canal” and despite his broken ankle and other injuries from his fall, he dragged himself close to water.
He said his mixed-breed dog, Ash, stayed with him and kept him company, which helped him survive.
The man, from the north-eastern city of Trieste, was in a part of the Venzonassa Valley unreachable by mobile phone.
He was found conscious but badly bruised.
His girlfriend had alerted the Friuli mountain and cave rescue service (CNSAS) on Wednesday, as she had been expecting him to return on Monday.
He had gone on such hikes in previous years, staying in mountain huts or makeshift shelters.
Ash is being looked after now by the rescuers, while the man recovers in hospital from his ordeal.