Petenis nomor satu dunia itu mengalahkan Miomir Kecmanovic, peringkat 38 dunia, 4-6, 6-3, 6-3.
Djokovic, yang mengejar gelar ketiga di Serbia Open dan gelar keempat ATP Tour secara keseluruhan di kota kelahirannya, akan menghadapi unggulan ketiga Karen Khachanov untuk memperebutkan satu tempat di final.
"Kecmanovic sangat solid, dia tidak banyak meleset. Dia benar-benar bergerak dengan baik tetapi secara umum saya merasa lebih baik daripada kemarin," kata Djokovic dikutip dari AFP.
"Saya merasa secara permainan saya mengambilnya satu atau dua tingkat. Saya yakin saya akan mendapatkan peluang saya. Ketika peluang itu disajikan kepada saya, saya menggunakannya."
Djokovic, 24 jam sebelumnya, juga membutuhkan tiga set untuk mengalahkan Lazlo Djere di babak pembukanya, Rabu, ketika dia bersiap untuk mempertahankan gelar French Open di Paris bulan depan.
"Secara fisik saya berhasil menekan lagi. Dua setengah jam lagi pertandingan dan saya tidak terlalu lelah," lanjut Djokovic.
"(Kecmanovic) sedikit membantu saya, dia membuat beberapa kesalahan sendiri menjelang akhir detik untuk memberi saya jeda. Setelah itu, itu adalah cerita yang sama sekali berbeda."
"Di set ketiga, semuanya bahkan sampai tiga dan setelah itu saya memainkan tiga gim terbaik dalam pertandingan."
Turnamen di Beograd tersebut merupakan kompetisi ketiga kalinya yang diikuti Djokovic pada 2022 setelah dia dideportasi dari Melbourne -- dan ditolak untuk mendapatkan kesempatan mempertahankan gelar Australian Open -- setelah memasuki negara itu tanpa vaksinasi COVID-19.
Dia juga dilarang bermain di Indian Wells dan Miami Masters karena sikap kontroversialnya terhadap COVID-19.
Petenis berusia 34 tahun itu lolos ke delapan besar di Dubai pada Februari dan kemudian kalah dalam pertandingan pembukanya di Monte Carlo Masters pekan lalu.