The Serb, seeking a record 25th Grand Slam title, won 4-6, 6-4, 6-3, 6-4 against the 21-year-old Spaniard, who hoped to become the youngest player in history to win the 4 Grand Slam tournaments.
For a place in the final, Djokovic will face world No. 2, German Alexander Zverev, on Friday.
Morocco