1938年,奥地利侬山修道院,院长嬷嬷主持晚祷,很明显志愿修女玛丽亚·瑞纳又没有到。此刻的玛丽亚正在山野中唱歌,陶醉在大自然中,同往常一样,这一次又迟到了,院长和她的助手们不得不认为她还不适合修女生活。
尽管院长对玛丽亚倾注了很大的热情,但还是让她离开修道院,去担任冯·特拉普上校家家庭教师的职位,也希望借此让她找到生活的意义。玛丽亚到冯·特拉普家,发现他
是一个有七个孩子的鳏夫,长期的海军生活和丧妻的悲伤使他对待孩子像管教士兵一样严格。很快,玛丽亚就明白了以前那些教师离开的原因,原来是孩子们得不到父亲的关爱,总是用捉弄教师来吸引父亲的主意。
上校要求玛丽亚也像他一样严格,但是玛丽亚没有听从,而是用她天生的温柔和善良赢得了孩子们的友好。趁上校不在的时候,她用窗帘布给每个孩子缝制了游戏服装,带领他们到市场游玩,在美丽的阿尔卑斯山上夜餐,还教会了他们唱歌,孩子们原有的拘谨和忧郁渐渐地被音乐和笑声代替了。
不久上校回家了,还带回了孩子们很不喜欢的女朋友男爵夫人和麦克斯叔叔。上校对玛丽亚的做法十分不满,可是当他听到孩子们为男爵夫人唱歌的时候十分感动,因为玛丽亚把他亡妻之后家里就不再有的音乐又带了回来。玛丽亚和孩子们一起准备了一场木偶戏,上校为玛丽亚可以感染他人的热情所吸引了。几天之后,上校和男爵夫人一起举行了一场盛大的舞会,孩子们在舞会中也有唱歌表演。在舞会中,玛丽亚给孩子们示范奥地利的民间舞蹈“连德勒”(Laendler),出乎意料的是,上校走过来和玛丽亚共舞,舞蹈最后他们互视对方,他们之间的爱意一目了然。这些都被男爵夫人看在眼里,当晚,她劝玛丽亚回修道院,玛丽亚怕自己对上校的感情会越陷越深,于是,她悄悄的离开了。
玛丽亚走了之后,男爵夫人用尽办法讨孩子们的欢心都没有成效,当孩子们得知上校要和男爵夫人结婚的消息后,更加难过。他们到修道院找玛丽亚却没能见到她。玛丽亚向院长嬷嬷坦白了她对上校的爱情和对生活的不知所措,院长嬷嬷告诉她要鼓起勇气,哪怕翻越世界上的每一座山峰也要找到自己的真爱。于是,玛丽亚回到冯·特拉普家里。
玛丽亚回来之后,男爵夫人发现她已经无法挽回玛丽亚和上校之间的感情,主动退出了婚约。上校和玛丽亚互诉衷肠,很快地,他们就结婚了。
可惜,他们的生活没有从此幸福快乐。当他们赶回萨尔兹堡,发现到处已经是纳粹旗帜飘扬了。他们不在的时候,负责照顾孩子们的麦克斯叔叔帮他们注册参加了萨尔兹堡音乐节。上校一回到家里,就接到了纳粹发来的电报,要他立即到纳粹海军报到,一向痛恨纳粹的上校决定带领全家人离开奥地利。当他们晚上离开别墅的时候,被早在门外监视他们的纳粹拦住了,于是上校解释说他们离开是为了参加音乐节演出,并拿出节目单作为证据。在纳粹的陪同下,他们来到了会场,孩子们演出了准备好的歌曲。在这时,上校和玛丽亚演唱了“雪绒花”,歌曲对祖国奥地利的热爱之情浓郁深厚,不顾旁边持枪的纳粹守卫,在场的观众也跟着上校一起唱完了“雪绒花”。
演出之后,趁着颁奖的时候上校一家人逃离了演出现场,纳粹一路追到修道院里,在修女们的帮助下,上校一家人藏到了墓碑后面,躲过纳粹的追踪,然后他们翻过玛丽亚热爱的森林,离开奥地利,寻找充满希望的新生活。