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-old 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.
"It's extraordinary to be here and to have won," said Tsonga, who hopes to follow in the footsteps of Yannick Noah, France's last men's champion in Paris in 1983.
"I never dreamt of this moment. Today was my moment against a champion who has won everything.
"I didn't think I would get this far without losing a set. But Ferrer has not lost a set as well, he's in great form."
Federer, in his 36th consecutive Grand Slam quarter-final, was bidding to win a record 58th career match at Roland Garros and reach his 34th semi-final at a major.
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.
"It was a bad day, it's a crushing disappointment," said Federer.
"But I will forget about it quickly, I usually do. "Give a lot of credit to Jo, he turns defence into attack very quickly and has got a big game. He can take time away from you and has a lot of confidence. That's a big part of his game."
Tsonga had reached the quarter-finals without dropping a set, while 31-year-old Federer had struggled in his fourth round win over Gilles Simon where he had to come back from two sets to one down.
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.
Ferrer reached the semi-finals for the second successive year with a 6-2, 6-1, 6-1 win over compatriot Tommy Robredo. Ferrer won in just one hour and 35 minutes to lift his series to seven wins for two losses against his 32nd-ranked rival as the 31-year-old continued a fine run of form which has seen him reach the last four without dropping a set.
Robredo, also 31, had by contrast spent five hours more on court -- including three consecutive five-setters -- as he missed out on a first appearance in a Grand Slam semi-final.
Robredo, playing in his fifth Roland Garros quarter-final, reached the last eight by becoming the first man since Henri Cochet at Wimbledon in 1927 to win three successive rounds from two sets to love down.