Hornqvist, Penguins hold on late vs. Canadiens