Russia will now face the United States in the championship match while Canada plays South Korea for bronze.
Kevin Rempel supplied the offence for the Canadians.
Russian goaltender Vladimir Kamantsev made 13 saves for the win as Corbin Watson stopped 23-of-25 shots for Canada.
Russia went 0 for 3 on the power play while the Canadians failed to score on five chances with the man advantage.
In the other semifinal, the U.S. hammered South Korea 8-0.
The bronze- and gold-medal games will take place on Saturday.