The Serb broke in the first game of the match and was serving for it at 5-4 when the Frenchman bit back.
He went on to force a tie-breaker, but the world number two edged it 8-6 for a one-set lead.
Gasquet drew first blood early in the second set and served it out 6-4 to bring about a decider, but his challenge fell apart in the third.
Djokovic raced into a 3-0 lead before Gasquet got a game on the board, and he was ruthless in sealing victory with two hours and 10 minutes on the clock.
The six-time Major champion will face Stanislas Wawrinka in the semi-final.