Sixth-seed Tsonga swept to a 7-5, 6-3, 6-3 triumph to reach his first semi-final in Paris and first by a home player since Gael Monfils in 2008.
The 28-year-will tackle Spanish fourth seed David Ferrer for a place in Sunday’s final.
Victory also helped wipe out the misery of his quarter-final in Paris last year where he had four match points over Novak Djokovic and lost in five sets.
Federer was bidding to win a record 58th career match at Roland Garros and reach his 34th Grand Slam semi-final.
The 17-time Grand Slam title winner also had the advantage of a 9-3 career lead over the French star, but Tsonga had been the man to beat Federer from two sets to love down in the Wimbledon quarter-finals in 2011.
But it was 2009 champion Federer who struck first on Tuesday with a break for a 3-2 lead which the French player retrieved for 4-4.
Tsonga took the opener when Federer shanked an ugly forehand.
One break in the second set for 2-0 was enough for a two-sets lead.
Federer had come back from two sets to love down last year in his quarter-final win over Juan Martin del Potro and in 2009 in the fourth round against Tommy Haas.
But there was to be no miracle this time as a break in the seventh game of the third set put Tsonga on his way.
It was all over after a one-sided one hour and 51-minute affair with Federer undone by 34 unforced errors and a brilliant performance under pressure by his opponent.