孤儿院里一个名叫索菲的小女孩一天夜里睡不着,她在“巫师出没的时刻”看到有个巨人沿街走过来,一路上不停地把一支长长的小号从窗口伸进有孩子睡觉的房间。他发现索菲看见他了,于是便把她用毯子裹着抓了出去,翻山越岭整整跑了大半夜,拎回到了巨人国。
这个巨人是好心眼儿巨人,他不吃人,只吃一种极其难吃的大鼻子瓜,他是个忠厚的巨人,告诉索菲因为她看见了巨人,怕被人发现,只好留她在这里一起度过余生。巨人国里有各种各样可怕的巨人,都有一个共同的爱好——吃人,他们白天懒洋洋地躺在地上晒太阳,等天一黑就全都跑到住着人豆子的地方去找晚饭吃,一共有9个,而且个个都比好心眼儿巨人高两倍。
好心眼儿巨人专门搜集好梦,把它们分门别类地装在一个个玻璃瓶子里,晚上再悄悄来到地方,挨家挨户地把捕捉来的好梦吹到孩子们睡觉的卧室里。索菲差点儿被喝血巨人吃掉,好心眼儿巨人勇敢地与其斗智斗勇,保护了她。他带着索菲一起到梦开始的地方捕捉更多的梦,把甜美的梦带回山洞,也把噩梦紧紧地封在瓶子里,以免它们跑到小孩子的睡梦中。
为了阻止其他巨人继续吃人,聪明的索菲出了一个主意,让好心眼儿巨人为英国女王调配了一个逼真的梦,然后吹到王宫的卧室里,让女王知道是巨人杀死了那么多可爱的孩子。于是女王派出军队,来到了一个地图也没有标注的地方——巨人国,抓住了9个吃人巨人,把他们用最粗的缆绳捆住,吊在直升飞机下边运回了英国,并圈禁了他们用于展览。