故事发生在2004年的冬天,一个小男孩正在矿山上放羊,他随手用石头码了一个金字塔,身后还有一个贴着奥特曼贴纸的水杯。紧跟着镜头来到了一个矿洞,男主张保民正在跟工友打架,突然有人跑来说他儿子张磊(磊子)丢了,原来这个张保民是个哑巴,他背上行李回家找儿子。第一站去了村口丁海开的羊肉馆,看着客人们啃羊骨头啃的这么带劲,张保民不禁陷入了回忆。张保民想到了之前村子里签开矿协议的时候,因为只有他一个人不签字,导致在这家羊肉馆和老板丁海干过一架,张保民完胜丁海,还戳瞎了他一只眼。他怀疑是店老板的报复,在店里思绪的过程中突然有孩子的声音,他赶忙进去,发现那个其实并不是他的孩子,是店老板的孩子看着奥特曼的面具在哭闹,张保民看了一眼吓得瑟瑟发抖的老板妻子和孩子离开了店里。
羊肉馆没找到人的张保民决定回家,路上碰到了正往家搬矿泉水的村长,拿到了这个月的补偿款,看来张保民最后还是签下了开矿协议。回到家后张保民的老婆正在吃药,张保民把电话打给了学校问情况。校园里煤矿老板昌万年为学校捐献了很多钱财,校长为了感谢昌老板让所有的孩子都集合起来与他合影,而昌万年说别辛苦孩子了,只是和校长合影了一下聊表心意。镜头切换,律师事务所里,很多的律师正在讨论关于违法采矿的事情,而其中有个律师就是徐文杰,他最近接了单大活,雇主就是煤矿老板昌万年,昌万年的公司涉嫌非法采矿,委托徐律师在后面为他打点一切。
张保民来到警察局报案,自己也拿着照片四处打听,在山上发现了儿子叠的石头堆,看来故事开头那个小男孩就是磊子。张保民走到附近一个矿山,一个矿工大爷同行他给了他几口剩饭,此时昌万年的手下大金带着一大群壮汉来赶人。原来这里就是刚才昌万年从同行手里吞并的矿场,大爷被欺负,张保民路见不平,整座矿山无敌手,把人家悍马的挡风玻璃都给干碎了。张保民一边打一边掏出照片询问磊子的下落,大金一看就骗张保民说他见过。然后就带着张保民去见了自己的老板昌万年,昌万年得知张保民的儿子丢了,突然就同情心泛滥,大发慈悲说车玻璃不用赔了,还可以给张保民介绍一份工作。大金也告诉张保民自己没看清小孩长啥样,不确定是不是他儿子,张保民虽然没得到什么信息,但隐约觉得旁边的一间密室里有问题。见老板就这么放走了张保民,大金不甘心,擅自拦下了张保民把他暴打了一顿。回了家后的张保民碰到了来给老婆送药的邻居,邻居说想起磊子走丢的那天,村口停了一辆银灰色的轿车。
另一边警察找上了昌万年,跟他说了他涉嫌违法的事情,昌万年也很无所谓,并且说这些事情都要交给他的律师去做,警察说他的律师已经被吊销执照了,昌万年打给徐律师打电话却没有人接。而徐律师这边哄女儿睡完觉以后,对着案件资料发呆。第二天张保民在骑摩托发传单,遇见了羊肉馆老板丁海的儿子,这孩子突然把奥特曼面具递给了他,张保民也没心思搭理他骑摩托走了,发传单的过程中看到了坐在面包车里的大金,悄悄地捡起一个扳子跟在后面。在他们停车修车的时候张保民抄上去对着大金就是一顿胖揍,揍完无意间发现车上有一个麻袋,他摸上去发现是个人,想要解开袋子没有解开,其他的小混混都赶了过来,张保民扛着麻袋跑了。
这时大金的外援也到了,漫山遍野找张保民。情急之中张保民躲进了一个山洞,他满心期待的解开麻袋却发现里面并不是磊子,而是个不认识的小女孩,张保民给小女孩胸前学生证上的手机号发了短信,让对方去约定地点接人,此时张保民似乎感觉山洞身处有人,看着黑漆漆的张保民也没往里面仔细看。其实这个小女孩是徐律师的女儿,徐律师接到短信后赶紧给张保民回了个电话。凭着这个电话,赵保民的手机铃声一响立马就暴露了,不让小女孩被发现,张保民只能先把她留在山洞里,自己用一招调虎离山撒丫子的狂奔。终于甩掉了大金跑回了村里,却发现村长正拿着手机告密,大金接到电话后果然又追了上来。这时丁海的车正好停在路边,在丁海的帮助下张保民逃过一劫,然后张保民来到了和徐律师的约定地点。
这时大金的外援也到了,漫山遍野找张保民。情急之中张保民躲进了一个山洞,解开袋子后发现是一个小女孩,此时徐律师在与昌万年通话,昌万年说交出他想要的东西他的女儿就没事儿。张保民从女孩身上找出了资料卡,上面有他父亲的联系方式,但是山洞没信号,张保民只有出了山洞给他父亲打电话,徐律师接到了电话。张保民却被发现,于是慌忙逃走,他给律师发了短信说自己救了他的孩子并约定晚上见面。张保民只能先把她留在山洞里,自己用一招调虎离山撒丫子的狂奔。终于甩掉了大金跑回了村里,却发现村长正拿着手机告密,大金接到电话后果然又追了上来。这时丁海的车正好停在路边,在丁海的帮助下张保民逃过一劫,然后张保民来到了和徐律师的约定地点。
这时大金打来电话说磊子在他手里让张保民赶紧带着小女孩来换,张保民想起了之前在昌万年办公室看到的那间密室,于是直接冲到了昌万年的公司找儿子,而此时公司里也有一大群打手在等着,其实他们是在等徐律师。因为昌万年在让大金绑架了徐律师的女儿后,就打电话让徐律师来赎人。张保民赶到后再次路见不平,一个人干犯了一群壮汉,张保民最终打到了昌万年的办公室。就在他准备打开密室救出儿子时,昌万年从后面拿起金字塔砸晕了张保民,还把他捆进了密室,原来这个密室只是昌万年的靶场,里面根本就没有张保民的儿子。而徐律师这边也早就到了约定地点,想打给张保民却发现手机没电了,徐律师只好跑到丁海家的羊肉馆充电。丁海的儿子一看到徐律师,就对着他做了一个射箭的动作,徐律师忙着找女儿也没心思陪他玩,赶紧跑了出来。然后无意间看到了张保民贴在墙上的寻人启事,发现上面的手机号和打给自己的号码一致,于是徐律师就按着地址来到了张保民家。徐律师打通了张保民的电话却被昌万年接起,昌万年就发了条短信约徐律师明早去山上见面。
第二天昌万年带着捆好的张保民出发了,在张保民的后备箱找到了一个箭头,用箭头割开了绳子之后又把箭头装进了口袋。下车时张保民一脚踢开了昌万年,跑进了山林遇到了赶来的徐律师,这时昌万年举了弓箭追了上来,他让徐律师交出证据,不然就弄死他,徐律师也很蒙圈。这时山下传来警笛声,原来徐律师已经报了警。张保民趁着昌万年分神立马冲上去干趴了他,两人扭打起来,而徐律师居然只在旁边干瞪着。情急之中张保民从口袋里掏出了那枚箭头,扎进了昌万年的大腿,这时徐律师反倒制止了张保民,让他带自己去找女儿。警笛越来越近,昌万年拔出了腿上的箭头并且藏了起来。
张保民也带着徐律师来到了洞口,徐律师看到山洞神情慌张看起来好像似曾相识,他走进了山洞抱出了一动不动的女儿,不过索性女孩并没有去世,只是昏迷了过去。徐律师抱着女儿离开后,又碰上了追上来的昌万年,昌万年跟徐律师说了一句意味深长的话“你还有女儿要照顾,我相信你会有办法的”。这时画面一转,昌万年和徐律师已经被抓进了监狱,俩人很快各自交代了罪行。昌万年说他当初被指控非法采矿,于是找到徐律师帮他摆平;而徐律师都说自己为了打赢官司,私下贿赂了相关证人,事情搞定后得到了昌万年的50万报酬。
看起来俩人痛痛快快的交代完了,但是事情还远远没有这么简单在这背后隐藏着一个更可怕的内幕。直到在丁海儿子随后涂鸦的一幅画中,之前所有的谜底才全部揭开。原来昌万年和徐律师在山上交易,正好碰到了磊子在放羊,昌万年一时兴起举起弓箭就想射羊群,而磊子可能为了保护自己家的羊扑了上去,结果被昌万年射死了。昌万年逼迫徐律师一起把尸体藏到了山洞的最里面,但回去之后才发现,*死磊子的那枚箭头不见了,昌万年以为是徐律师藏了起来威胁自己,一直给徐律师打电话又打不通,所以才会绑架他的女儿,但其实箭头就落在了车后座,之后又被张保民捡起,也正是刺伤昌万年大腿的那一枚。这也正是为什么昌万年看到那枚箭头时,赶紧埋在了土里,他是为了销毁证据。谜底揭开后,之间很多的疑问都有了答案,昌万年后来捐款给学校以及不追究张保民打碎玻璃的事,都是因为*了张保民的儿子,所以良心有愧。
丁海儿子应该是磊子的玩伴,可能因为年纪太小,明明目击了一切却不知道该怎么表达。所以他把奥特曼面具递给张保民,后来还对着徐律师比划射箭。而他在电影开头时在羊肉馆里抽搐喊叫,应该也是在模仿磊子中箭后的反应。正因为徐律师参与*害了磊子并藏尸山洞,所以见到丁海儿子比划射箭时,看到张保民的寻人启事时以及看到山洞时表情都很异样。而之间邻居说的那辆银灰的轿车就是徐律师的,他跟昌万年去山上拿钱时把车停在了村口。
当然电影在最后加了一个光明的结局,警察顺着线索继续追查,昌万年和徐律师也被绳之以法。