Tsonga outslugged del Potro with 26 aces to 15 but made too many unforced errors against the 2009 U.S. Open champion, who reached his second final in two weeks.
Del Potro broke for a 2-0 lead in the final set when Tsonga netted a backhand volley. He clinched the victory on a backhand from Tsonga that sailed wide.
Both players struggled early. Tsonga started with a double-fault and three unforced errors to drop the opening game. He broke back in the fourth game but made a forehand error to give del Potro a 3-2 lead.
Del Potro slammed an ace to save a break point and whipped a forehand winner to erase another one at 4-3 before taking the first set with a service winner clocked at 129 mph.
Tsonga, who won this tournament in 2009, raised his game in the second set by hitting 26 winners to 16 for del Potro.
Del Potro saved a set point at 5-4 to force a tiebreaker. Tsonga saved a match point at 8-7, then hit a forehand volley to convert his fifth set point and even the match.
In the second semifinal, Tipsarevic sent an approach shot into the net to drop serve at 5-4 and lose the opening set.
Llodra saved six set points in the tiebreaker and converted his first match point when Tipsarevic hit a forehand wide.