The Swiss third seed, back in action this week after a 10-week layoff, started brightly as he breezed through the opening set but Tsonga, targeting Federer’s forehand, played tighter and levelled with a strong display in the second.
The Frenchman broke in the 11th game of the decider with a passing shot winner and he closed it out on serve on his first match point to set up a meeting with compatriot Gael Monfils, who beat Spain’s Marcel Granollers 6-2 6-4.
Earlier, there were glimpses of the formidable Rafa Nadal as the eight-times champion swept aside French Open winner Stan Wawrinka 6-1 6-4.
The Spaniard, who set a tournament record of 46 wins in a row in the principality from 2005 to 2013 when he finished runner-up, will take on Andy Murray for a place in the final.
World number two Murray raced into last four with a 6-2 6-0 demolition of Canadian Milos Raonic.
Opening proceedings on centre court, the Briton, who struggled in the previous round, was never bothered by 10th seed Raonic in a one-sided match.
Murray, who hit 19 winners and did not face single break point, was beaten twice by Nadal in the semi-finals of the first claycourt Masters of the season.
The fifth-seeded Nadal, who broke decisively in the ninth game of the second set, has yet to win a title this year.
“It’s exactly what I need, it’s what I’m looking for, it gives me confidence,” Nadal said.