O dinamarquês venceu o sérvio por 2 sets a 1, parciais de 6-2, 4-6 e 6-2, em 2h17m de partida.
Pela primeira vez desde 2004, nem Djokovic nem o lesionado Rafa Nadal estarão na final do Aberto da Itália.
Nas semifinais, Rune enfrentará o norueguês Casper Ruud, que venceu Francisco Cerundolo na última partida das quartas de final por 7-6(5) e 6-4.
Chuva e analgésico
Holger Rune, que superou Djokovic na final do Masters de Paris do ano passado, quebrou o número um do mundo logo no primeiro game.
O sétimo cabeça de chave chegou a abrir 4 a 1 contra um Djokovic que parecia desconfortável, um dia após admitir que estava lidando com um problema físico.
O sérvio tomou um analgésico no meio do segundo set e voltou à vida pouco tempo depois para abrir 5 a 2, quando Rune perdeu completamente a calma por causa de uma decisão polêmica do árbitro principal.

Depois de soltar palavrões, o dinarquês se acalmou e respondeu com uma quebra, mas acabou perdendo o set depois de uma longa pausa no jogo devido à chuva.
Rune voltou dominante para o decisivo set, abrindo 4 a 0 antes de fechar o jogo.
"Obviamente, eu fiz isso no ano passado em Paris, mas toda partida é um grande desafio quando jogo contra Novak", disse o tenista após a partida.
"Ele é um dos maiores jogadores de todos os tempos, então eu sabia que tinha que dar o meu melhor. Estou muito orgulhoso de mim mesmo e aproveitei cada momento lá fora", acrescentou.

Rune disse que esperava manter a humildade depois de mais uma vitória expressiva no ATP Tour: "Tenho muito a conquistar... Acho que sou humilde e espero que as pessoas me vejam dessa forma."
Djokovic será ultrapassado no topo do ranking pelo espanhol Carlos Alcaraz antes de Roland Garros, que começa em 28 de maio.