Holders Canada booked their place in the ice hockey world championship final against Sweden with a dramatic 4-2 comeback victory over fellow heavyweights Russia in Saturday's semi-final in Cologne.