Djokovic defeated Serbian countryman Janko Tipsarevic 6-4, 6-1 in a rain-delayed evening match.
The match was held up after its first five games, but Djokovic showed few effects after the layoff and cruised to the victory over the fifth-seeded Tipsarevic.
The former world No. 1 will be seeking his third overall Rogers Cup victory in Sunday's final.
There he'll meet the 14th-seeded Gasquet, who scored an upset over eighth-seeded American John Isner 7-6 (7-3), 6-3 in Saturday's first semifinal.
Gasquet is 1-6 all-time against Djokovic.