Monfils, 29, beat the fourth-seeded home favourite, a Wimbledon finalist earlier this month, 6-4 6-4 in Toronto.
Serbia's Djokovic made 33 unforced errors but still progressed with a 7-6 (8-6) 6-4 win over Czech Tomas Berdych.
Swiss second seed Stan Wawrinka and Japan's third seed Kei Nishikori will meet in Saturday's other semi-final.
Frenchman Gael Monfils beat Canadian Milos Raonic in straight sets on Friday to set up a Rogers Cup semi-final with world number one Novak Djokovic.