The British second seed broke the Frenchman's serve once in each set to win 6-4 6-4 in a rain-delayed match which finished at 01:30 local time.
Murray will now meet Kei Nishikori in the last four after the Japanese fourth seed overcame Rafael Nadal 6-2 6-4.
Top-seeded Wimbledon champion Novak Djokovic plays unseeded Jeremy Chardy in Saturday's other semi-final.
"I passed well," Murray, 28, said. "I came up with some good passing shots and that was the difference."
The first four games went with serve before Murray gained the opening break in game five courtesy of a fierce forehand up the line.
World number 24 Tsonga had two break points in game four of the second set, but passed up the first before Murray's first ace of the match took the game to deuce.
From there, the two-time Grand Slam-title winner held, before seizing the initiative with a lob to break Tsonga's serve on his way to taking the second set.
Should Murray reach the final in Montreal he will replace Swiss Roger Federer as number two in the world rankings. He last held the position - the highest of his career - in 2013.
Murray has now qualified for the ATP World Tour Finals at The O2 arena in London in November, having only secured his place last year 11 days before the event.
Wimbledon champion Djokovic saved two match points to beat Latvian Ernests Gulbis and set up his last-four meeting with Frenchman Chardy.
The Serb rallied from a set down to win 5-7 7-6 (9-7) 6-1 and extend his Master Series streak to 29 - last losing to Federer in Shanghai last year.
In the women's tournament in Toronto, world number one Serena Williams beat Italy's Roberta Vinci to reach the last four.
The 33-year-old American served 12 aces to win 6-4 6-3 in 79 minutes and set up a semi-final with Belinda Bencic. The 18-year-old Swiss beat Ana Ivanovic 6-4 6-2.
Romanian second seed Simona Halep faces Italy's Sara Errani in the other semi final.
Andy Murray reached the semi-finals of the Rogers Cup in Montreal by beating defending champion Jo-Wilfried Tsonga.