Tsonga, who made the semi-finals by toppling third seed Roger Federer from two sets down, managed to take the match to four sets against the world number two.
The 12th seed had a promising start, breaking serve in the first game and maintaining his lead until Djokovic came back to win the first set on a tie-break.
Tsonga wavered in the second set which he lost 2-6, having lost only four service games in the tournament before today.
He stole a tie-break victory in the third set before Djokovic finally secured the match 7-6(4) 6-2 6-7(9) 6-3.
While Djokovic is seeded second in the tournament, history had favoured the Frenchman, who had won five of their seven matches. The Serb previously triumphed over Tsonga to win the 2008 Australian Open.
The two-time Grand Slam winner will face either Rafael Nadal or Andy Murray in Sunday’s final.