World number one Djokovic, playing in his first tournament since winning a ninth Australian Open in February, suffered his first defeat of 2021 on Thursday.
Evans, who had never before reached the last eight of a Masters 1000 tournament, won 6-4 7-5 with a performance that belied his relative lack of success on clay.
The 30-year-old Briton will now meet David Goffin, who surprised fifth seed Alexander Zverev 6-4 7-6 (9-7).
"To be honest, this has been probably one of the worst matches and performances from my side I can recall in the last years," said Djokovic. "I don't want to take anything away from his win, but from my side, I just felt awful on the court overall. Just nothing worked. It's one of those days."
Saying he felt "completely the opposite" to Wednesday's win over Jannik Sinner, Djokovic added: "Just was obviously very, very windy, tough to play in these kinds of conditions against a guy like Evans who makes you move. He's very unpredictable with his shots. He dismantled my game."