Morozov collected the puck at his blue line and skated up the ice to wrist the winner past goaltender Hugo Alnefelt with 1:36 remaining in overtime.
Russia, seeking its first title since 2011, will face defending champion Finland or Canada in Sunday’s final.
Sweden will play the bronze medal game.
Yegor Sokolov also scored two goals for Russia and Alexander Khovanov added one. Russia outshot Sweden 44-25.
Rasmus Sandin scored two goals and added two assists for Sweden; Samuel Fagemo and Nils Lundkvist added one goal apiece.
It was an up-and-down game at Ostravar Arena in the eastern city of Ostrava.
Russia answered Sandin’s first goal scored just 16 seconds into the game with three goals still in the opening period, including Morozov’s tying goal on a power play.
Sweden rallied and Lundkvist put the Swedes ahead 4-3 in the third before Sokolov tied the game again with 11:25 left in the final period to force overtime.