The third-ranked Serb broke Zverev in the sixth game on a double-fault from the German before winning 12 points in a row to serve out the first set and take a 2-0 lead in the second.
"I was focused from the start,'' Djokovic said. "Mischa was trying to get to the net, but I really returned well. That was the key today.''
Djokovic lost in Marseille in the first round in 2007 and in the second round last year.
"I haven't got a lot of success in the last two years here,'' Djokovic said. "But this year, everything is going well.''
In the semifinals, Djokovic will face Jo-Wilfried Tsonga of France, who defeated Feliciano Lopez of Spain 6-2, 6-7 (1), 6-4.
Tsonga, who leads Djokovic 3-1 overall, landed 78 percent of his first serves and hit six aces in the first set. Lopez fought back in the second set and saved two break points to force a tiebreaker.
"Feliciano was really good in the tiebreak,'' Tsonga said. "He was very aggressive. He served well.''
Michael Llodra of France also advanced to the semifinals, edging Mikhail Youzhny of Russia 7-6 (4), 7-6 (3).
Llodra broke Youzhny in the third game of the second set with a backhand winner, but squandered his lead while serving for the match at 5-4 with a double-fault.
Karim Benzema Ready To Stay With Lyon
Jonathan Pereira Seeking Villarreal Return In Summer
Djokovic beats Zverev to reach Open 13 semis