Edmund, ranked 34th in the world, has so far endured a disappointing summer but he put that to one side by overcoming his French opponent 4-6 6-3 6-4 in Washington.
Tsonga, a former grand-slam finalist, claimed the opening set after securing a break of serve in just the third game and then saving two break points in the fourth.
However, 24-year-old Edmund, playing his first tournament since suffering a second-round loss at Wimbledon, dug deep.
The 13th seed crucially broke 34-year-old Tsonga in the eighth game of the second set and then held serve to level at 1-1.
World number 70 Tsonga hit 14 aces to Edmund's four during the match, but his serve was once again broken in the fifth game of the decider and he was unable to find a way back as Edmund progressed to the last eight.
Edmund will face lucky loser Peter Gojowczyk in the last eight after the German upset eighth seed Milos Raonic.
German Gojowczyk defeated 2014 champion and world number 20 Raonic in straight sets, winning 6-4 6-4 in an hour and 21 minutes.
Sixth seed Marin Cilic also enjoyed a relatively straightforward passage into the last eight with a 6-3 6-4 success against 18-year-old Canadian Felix Auger-Aliassime.
Elsewhere in Washington, top seed Stefanos Tsitsipas saw off Jordan Thompson 6-3 7-6 (4), Nick Kyrgios made short work of Yoshihito Nishioka 6-2 7-5, Benoit Paire claimed a hard-fought 7-6 (3) 6-3 victory over fifth seed John Isner and Russian Daniil Medvedev defeated Frances Tiafoe 6-2 7-5.
Austrian Open
Top seed and world number four Dominic Thiem moved into the semi-finals following a straight-sets victory over Spain's Pablo Andujar.
The 25-year-old home favourite won 7-6 (4) 6-4 and will next meet Lorenzo Sonego in Kitzbuhel after the Italian upset third seed Fernando Verdasco 6-4 6-4.
In the bottom half of the draw, Albert Ramos-Vinolas will play 20-year-old Norwegian Casper Ruud for a place in Saturday's final.
Spaniard Ramos-Vinolas saw off France's Jeremy Chardy 6-3 6-4, while Ruud - bidding for his first ATP Tour title - knocked out Uruguayan fourth seed Pablo Cuevas 6-3 7-6( 4).