The holder next meets seventh seed Mikhael Youzhny who put out Austrian outsider Juergen Melzer 7-5, 7-6.
Youzhny defeated Djokovic in the Rotterdam Open semifinals two weeks ago but the world number two from Serbia said that meeting would count for little.
Djokovic, 22, was taken to three sets for the third time in four rounds. "My serve wasn't at the level I wanted," he said. "I'm just fortunate to go through.”
Djokovic was the first to break as Baghdatis, 24, netted a backhand to fall 3-2 behind. The Serb then double-faulted as Baghdatis broke back and in the tiebreak Djokovic threw his racket in disgust after another double-fault put the Cypriot on top.
A wild forehand handed Baghdatis another break and a 2-1 lead in the second set but the world number 37 allowed Djokovic to break straight back.
Baghdatis squandered four break points in the Serb's next two service games before netting to hand Djokovic an important 5-3 lead.
The Serb, playing an array of drop shots the tiring Cypriot could not reach, took an early 2-0 lead in the third set and went on to book his first final appearance of the year.
Paes-Dlouhy in final
Leander Paes and Lukas Dlouhy stormed into the final after registering a come from behind win over Christopher Kas and Dick Norman.
The second seed Indo-Czech pair prevailed 2-6, 7-6 (6), 10-7 over the German-Belgian combination in the semifinals.