1927年,滇军策应广东革命政府北伐号召征讨军阀唐继尧,双方激战昆明城外。马夫兵杨志华凭借天赋一炮命中杜清时的战地指挥所,虽然战败被俘,却因神炮技艺死里逃生。杨志华阴差阳错考入讲武堂,和高材生杜清明冲突频发。但其得到教官枝野胜男的严酷训练,成为最没文化的神炮手。抗日战争爆发,杨志华加入八路军部队奔赴华北战场,意外与杜清明重逢。一个八路军营长,一个国民党教官,二人摒弃前嫌,携手抗敌,与枝野胜男多次较量,师生决战战场。枝野胜男出尽奇招,组建特种部队,杨志华的炮兵营多次陷入危机。历经挫折考验,杨志华和杜清明反败为胜,在关键战役打败枝野胜男而名声大噪。抗战胜利,国共分裂,杨志华和杜清明又在济南战役兵戎相见。
1927年,广州革命政府北伐,无暇顾及云南,唐继尧趁机投奔北洋军阀,滇军将领龙云等人提出响应广州政府革命行动,策划“二六”兵变,双方调兵遣将激战昆明城外。唐继尧部炮兵阵地,几门火炮即将打完炮弹,龙云部六十九团团长杜清时坐镇后方,等待在战场上开炮的两个弟弟打赢战斗。杜清时的两个弟弟是开炮好手,二弟杜清明负责装炮,三弟杜清扬负责开炮,兄弟两人配合默契,对准唐继尧的炮兵阵地连开几炮,唐继尧的炮兵团已经打完了炮弹,只有挨炸的份。马车夫杨志华与伙伴王铁头送来了炮弹,两人见敌方炮弹来势汹涌,吓得面色大变,王铁头数落杨志华不该参军,当初杨志华想看士兵们打战,真正到了战场上,王铁头才意识到枪弹无眼绝非儿戏,稍有不慎就会丢掉性命。负责开炮的炮兵全部阵亡,只剩下运送炮弹的杨志华与王铁头。长官急需炮兵,许诺给会开炮的士兵打赏二十大洋,人为财死,鸟为食亡,杨志华面对二十大洋,决定冒险开炮,虽然他从未开过炮,但以前经常运送炮弹,早就记下了炮兵操控火炮的流程,在王铁头的帮助下,杨志华摇高炮筒,在长官的要求下准确无误击中敌方军旗。杨志华以为开完一炮就能全身而退,不料长官得寸进尺,要求杨志华炮袭敌方火炮摆放地点,杨志华不忍杀生,宅心仁厚拒绝了长官的要求。长官掏出手枪指住王铁头的脑袋,提醒杨志华不听命令就会害死同伴。杨志华走投无路,硬起头皮对准敌营连轰几炮,其中一炮炸中敌方火炮,炸死了炮手杜清扬。杜清时得知三弟杜清扬阵亡,悲愤交加发动冲锋,成功俘获包括杨志华在内的所有士兵。杜清明审问所有人,想找到杀死三弟杜清扬的凶手,杨志华担心同伴们被牵连,承认自己就是凶手。杜清明得知杨志华是个马车夫,不相信杨志华会开炮,杜清时赶了过来,带走杨志华,问清杨志华开炮过程,非常赏识杨志华的才干。杨志华从军只为混生计,从未想过杀人,拒绝了杜清时的招降好意。杜清扬刚死,杜老爷子七十大寿来临,隶属国军党讲武党的炮兵科主任李秋白造访,与其随行的还有讲武党的女校医李慕兰。两人步入杜府,见到了因三弟身亡处于悲痛中的杜清明。
杜老爷子过七十大寿,宾客们坐在院子里面胡吃海喝,李慕兰在另一处院子发现了被绑在木柱上的杨志华。杨志华把李慕兰当成了救星,称自己清白无辜即将被杜清明处死。李慕兰从事医学行业,珍惜每一个人的性命,为杨志华解开了绳索,杨志华离去之时担心李慕兰向其它人通风报信,将李慕兰绑到木柱上。杜清明进入院内见李慕兰被绑,赶紧为其解开绳索,在其带领下进入摆寿宴的院内,找到了换了一身新衣服的杨志华。院子里面的士兵在杜清明的命令下追捕杨志华,双方在不太宽敞的院内上演猫捉老鼠的戏码,杨志华在奔逃过程中掀翻几张餐桌,许多杯碗筷勺稀里哗啦落在地上,发出刺耳的破碎声。在士兵们的围捕中,杨志华狗急跳墙劫持李慕兰,拾起一片锋利的瓷器碎片,抵住李慕兰的脖子,警告众人不能再靠前半步。杜老爷子赶了过来,弄清杨志华被捕原因,深明大义没有因侄子杜清扬身亡迁怒到杨志华身上。战场上刀枪无眼,双方各为其主,杜老爷子也当过兵,没有仇恨杨志华。杜清时虽然不愿意放走杨志华,但因身为伯伯的杜老爷子开了口,只得命令士兵们放走杨志华。事后再睁只眼闭只眼,任由杜清明带人外出抓捕杨志华。杜清明将杨志华吊到水车上,在水车上绑上手雷,打算炸死杨志华。眼看手雷就要被拉响,李秋白赶了过来,取下手雷救下杨志华,训斥杜清明一行人胡作非为,众人皆是李秋白的门生,李秋白为人正直无私,骂走了杜清明一行人,放走了杨志华。杜清明不甘心放过杨志华,全城张贴通辑杨志华的告示,杨志华原本打算出城逃之夭夭,因自己成了官方的通辑犯,走投无路找到李秋白的住处,敲响李家大门,在李秋白家中暂避风头。为了报答李秋白的救命之恩,杨志华在李家大院打扫走廊,李慕兰从走廊经过,不允许杨志华靠近她半步,杨志华乖乖听令,眼睁睁注视李慕兰行走不慎摔倒在地上。李慕兰在杨志华的搀扶下从地上站起来,数落杨志华在她摔倒的一瞬间没有拉住她,杨志华委屈交加,提醒李慕兰曾经不给他靠前一步。李慕兰吃了哑巴亏怒气冲天,回讲武堂给一个患病士兵打针,把患病士兵当成发泄对象,扎针之时使出全力。
李慕兰摔了一跤,额头上沾着一些尘土,回学校上班,向杜清明谈起摔倒原因,对杨志华已是心怀不满。杨志华被全城通辑,走投无路在李秋白家中避风头,李秋白送了一本火炮书册给杨志华阅读,杨志华出身炮手世家,从小看着父亲开炮长大,十岁那年,因父亲与敌作战不幸身亡,杨志华对战争充满了恐惧,但始终对火炮怀有特别的好感。在李家研读火炮书册之时,杨志华不忘干农活报答李秋白,挖除院子里面一小块花地,打算种植黄瓜一类的蔬菜。李慕兰下班回家目睹自己栽种的心爱花朵被拔除,勃然大怒揪住正在挖地的杨志华。杨志华一边挖地一边握着书本阅读,被出现在身边的李慕兰吓了一跳,手掌一松握书不稳,火炮书册不偏不倚落到水桶内,桶内的水浸湿了许多书页。李秋白无比心疼,数落杨志华没有保管好书册,杨志华有愧于李秋白,凭着过人的记忆画出了被浸湿的所有火炮图案,令李秋白惊叹不已。这天,杨志华出门跟随工人们搬运粮草进入讲武堂学校,一时好奇心起,独自一人溜进武器库观赏几门火炮。几个士兵进入武器库把杨志华当成小偷,杨志华撒腿就跑,被屋外的杜清明拦住,眼看杜清明就要抓住杨志华,李秋白赶了过来,计上心来数落杨志华送东西来学校迷了路,杨志华会过意来,与李秋白一唱一和,成功离开了学校。杜清明放学之后向堂哥杜清时谈起在学校抓捕杨志华的事情,杜清时已将杨志华当成老虎,心知不能放虎归山,必须想办法除掉开炮能手杨志华。李秋白是讲武堂的炮科副主任,位高权重,一心在学校发展共产党,杜清时将李秋白视为异类。他叮嘱杜清明留意杨志华,有第一次就有第二次,竟然杨志华已经私自离开李府一次,以后肯定还会有第二次,只要杨志华离开李府,杜清明就有机会抓到杨志华。李秋白赏识杨志华对火炮的了解,劝说杨志华加入讲武堂学校深造,成就一番作业,杨志华在李秋白的劝说下顺利考进讲武堂。跟他一起考入讲武堂的还有二十来个学生,杜清明召集全体师生讲话,故意谈到龙司令已经拥护北伐加入国民政府,暗示李秋白如果一味支持共产党,将会成为众矢之的。入校第一天晚上,杨志华在宿舍睡觉,险被杜清明拿枕头捂死,幸好管理员赶了进来,赶走了杜清明,杨志华才平安无事逃过一劫。
讲武堂为了培养一批炮手,重金聘请日本炮术专家枝野胜男到学校任教。枝野胜男向学生们传授专业的炮术知识,从火炮发展的年代说起,学生们听得津津有味,唯独杨志华哈欠连连,完全不在状态中。枝野胜男对在课堂上轻视老师的杨志华产生不满,盘问杨志华为何打哈欠,杨志华老实巴交,坦承自己听不懂枝野胜男讲解的理论技术。学生们被杨志华逗乐,哄堂大笑。杨志华索性发表自己的观点,认为理论比不过实践,与其说一大堆理论知识,倒不如亲身上阵操控火炮。枝野胜男见杨志华质疑他的教学方式,顿时火起,提出与杨志华到训练场比试炮术。杨志华初生牛犊不怕虎,接受了枝野胜男的挑战,两人来到训练场开始比试。枝野胜男一马当先登上一辆马车,一边驱赶马匹一边操控车上的火炮,准确无误击发炮弹射中训练场外的目标。学生们为枝野胜男喝彩,杨志华登上马车仿效枝野胜男向训练场外的目标开炮,未能击中目标,败给了枝野胜男。杜清明幸灾乐祸,提议惩罚扰乱课堂的杨志华,不料枝野胜男非常赏识敢作敢当的杨志华,宣布任命杨志华为炮兵队员的副队长。杨志华因祸得福,摇身一变成了一个小领导。枝野胜男将杨志华领到办公室,向杨志华展示贴在墙上大量的火炮图案,能进入办公室的学员只有二个,一个是有过实战经验的杜清明,一个是刚进入讲武堂初露锋芒的杨志华。枝野胜男非常看好杨志华的能力,打算重点载培杨志华。李秋白并未因为杨志华当上副队长而高兴,杨志华虽然有一定的炮术基础,但文化课全班倒数第一,李秋白希望杨志华加强文化课知识,成为一个文武双全的炮手。是夜,李秋白给学生们上文化课,谈起中国的时局,北伐政府成立之后势如破竹,一路攻城掠地,已经成为中国最有声威的党派。杜清明认为北伐政府的思想方针发展正确,所以才建党成功。杨志华说不出什么冠冕堂皇的观点,认为农民才是政府的根本,没有农民支持,任何政府都难以存活下去。学生们对杨志华提出的观点哭笑不得,唯独李秋白表态支持杨志华,如果没有农民种粮食,政府军就得饿死。说农民是政府的根本并非夸大其词。反军唐继虞趁着龙司令出征在外,攻打昆明,王参谋长情急之下向讲武堂求助,任命枝野胜男与李秋白为军事顾问,带领学生们与唐继虞作战。李秋白临危受命召集所有学生,分别任命杜清明与杨志华为一二排代理排长。
杜清时率领讲武堂的学生们上阵杀敌,学生们分成两个排,分别由杨志华与杜清明领导。杜清明立功心切,私自转移阵地,带领一个排的战士们抬走火炮,换了新位置。杜清时从望远镜中观察到杜清明的举动,枝野胜男夸赞杜清明艺高人胆大,打战不按常规出牌,为了获胜铤而走险转移阵地。敌军发动冲锋,杜清明命令同伴们架好火炮,对准冲锋的敌军倾泻炮弹,许多炮弹如同雨点般落到敌军身边,发出震耳欲聋的爆炸声,将许多敌军炸得哭爹叫娘。敌军遭到炮袭,改变冲锋方向,向杜清明领导的队伍冲了过来,杜清明一行人的重武器只有火炮,缺少步枪兵支援,敌军如果冲杀过来,众人性命休矣。杜清时从望远镜中看到杜清明领导的队伍被敌军包围,不敢冒然出兵,战场上讲究的是调兵有方,不能胡乱排兵布阵,杜清明打乱了己方整体战线布局,杜清时如果也胡乱派兵支援,将会牵一发动全身,给己方带来灭顶之灾。杨志华在远处观察到了杜清明陷入到困境中,他叮嘱炮手们在三分钟之后就向杜清明所在的位置开炮,随后冒着枪林弹雨冲锋陷阵,赶到杜清明身边。杜清明没有领杨志华的情,而且不相信杨志华以一人之力就能力挽狂澜,杨志华早就做打好了如意算盘,三分钟后他的部下就会向他所处的位置轰炸,他已经记下了炮弹落地的方位,按照偏离炮弹方位的位置奔跑就会平安无事。时间紧急,不容迟疑,杨志华领导的炮兵排开始发射炮弹,杜清明一行人跟随杨志华在炮弹爆炸声中奔跑,敌军紧随其后被炸得鬼哭狼嚎。战斗结束,杨志华成功救了包括杜清明在内的幸存的战士,一行人大难不死从战场上撤退下来,到医院治伤。李慕兰向杨志华表达谢意,与养伤的杜清明谈婚论嫁,李秋白虽然对拥护国民党的杜清明没有好感,但不反对李慕兰嫁给杜清明。杨志华在战场上经历了一回生死,向李秋白表示,他已经意识到做人就要有抱负,不能浑浑噩噩活一辈子。同时还想加入共产党,与李秋白成为同一阵线的党派。讲武堂的学生们出征打了一次胜仗,还未来得及庆祝,枝野胜男心系祖国,留信一封向学生们辞行,打算返回日本。