Karlovic, 35 år, tjänade 21 ess när världen nummer ett kämpade för att kontrollera sina markslag i höga vindar.
I semifinalen möter Karlovic Spaniens David Ferrer, som vann Tysklands Dustin Brown 6-2 6-2.
Tredje fröet Tomas Berdych från Tjeckien kommer att möta Italiens Andreas Seppi i den andra seminen.
Berdych såg av Frankrikes Richard Gasquet 6-2 6-1, medan Seppi hade en 7-5 6-4 seger över Ivan Dodig av Kroatien.
Men dagen tillhörde världen rankad 27 Karlovic, som spelade in sin andra karriär seger över serberna efter att också ha triumferat på Madrid Masters 2008.
Djokovic var dock två gånger inom två poäng för att vinna matchen i den andra uppsättningen tie-breaker, innan släppa tjäna i den sjunde matchen i den sista uppsättningen.
Karlovic sade: " Jag mådde bra trots vinden. Jag vet att han inte kunde visa hela sin räckvidd.
"Jag var avslappnad och kände inte att jag behövde göra något extraordinärt. Jag var bara tvungen att fokusera på mitt spel."
Novak Djokovic drabbades av en överraskande förlust mot Kroatiens Ivo Karlovic 6-7 (2-7) 7-6 (8-6) 6-4 i Qatar Open kvartsfinal i Doha.