The seventh-ranked Frenchman, playing in the Swedish capital for the first time, put on an impressive display of serve and volley tennis to line up a meeting on Saturday with 2009 champion Marcos Baghdatis.
Baghdatis edged Lithuanian Ricardas Berankis 6-3, 7-6 (7-4).
Leading 5-3 in the second set, Tsonga squandered four match points on Stakhovsky's serve. But on his serve, Tsonga finished with a powerful forehand winner on the fifth match point.
Spain's Nicolas Almagro will play second-seeded Tomas Berdych of the Czech Republic in the other semifinal. Almagro beat former No. 1 Lleyton Hewitt 6-1, 6-4, and Berdych edged Russia's Mikhail Youzhny 6-3, 7-6 (2) in the late match.