小男孩尼尔斯经常欺负小动物。有一天,他居然戏弄小精灵,于是小精灵把它变成了一个拇指大的小人儿。尼尔斯为了阻止雄鹅莫顿飞走,便骑在鹅背上,不料却和雄鹅一起开启了一段神奇的旅行。
在斯康耐平原,一只母松鼠被人类捉住了,尼尔斯把母松鼠的宝宝送到松鼠妈妈身边。人们看到嗷嗷待哺的松鼠宝宝后,决定把松鼠们放回榛树丛。从此,尼尔斯救松鼠的故事便传开了。
雄鹅莫顿被人类抓住了,尼尔斯藏在学生的箱子里潜入城堡,把莫顿救了出来。此后,尼尔斯和莫顿的友情变得更深了。
一天夜里,雁群被狐狸斯密尔袭击,一只大雁被斯密尔叼走了,尼尔斯奋不顾身地救下那只大雁。从此,尼尔斯得到了雁群的信任,成了大雁真正的旅伴。狡猾的斯密尔哪里肯善罢甘休?他一直跟踪雁群,寻找机会报复大雁和尼尔斯。在罗纳比河,大雁们再次与斯密尔狭路相逢。诡计多端的斯密尔先后怂恿紫貂和水獭偷袭雁群,都被勇敢的尼尔斯击退了,斯密尔再次以失败告终。
在北去的途中,尼尔斯帮助了很多小动物。在小卡尔斯岛,尼尔斯帮助山羊击退了贪婪的狐狸,设计将三只狐狸引入“地狱洞”,解除了山羊的烦恼。在陶庚湖畔,尼尔斯解救绿头鸭,阻止了人类对陶庚湖的排水计划。后来,他还帮助老马和老马的朋友找到了避雨的地方,让老马和主人得以相认。即使遇到了要伤害的他的公熊,尼尔斯也是以德报怨,帮助公熊从猎人的枪口下逃脱。
斯密尔追踪雁群失去了线索,于是他决定主动出击,让信鸽把天鹅寻求帮助的假消息传给阿卡。当阿卡带着雁群赶到叶尔斯塔湾时才发现一切都是斯密尔的诡计。夜里,斯密尔准备偷袭天鹅,却被尼尔斯搅黄了。尼尔斯把狐狸引到附近的农舍。在看门狗的帮助下,尼尔斯用狗链拴住了斯密尔。从此,斯密尔再也不能伤害雁群了。
在动物园里,尼尔斯把阿卡的养子高尔果救了出来,并帮助阿卡和高尔果和好如初。
在拉普兰生活了一个夏季,雁群又飞回了斯康耐。为了答谢尼尔斯,阿卡决定将自己发现的金币送给尼尔斯,尼尔斯却拒绝收下。
尼尔斯回到家中打探父母的消息,却看见爸爸妈妈要杀死莫顿。千钧一发之际,尼尔斯勇地站在父母面前,救下雄鹅莫顿。不知什么时候,尼尔斯已经变回了原来的样子。