《槍王之王》的故事由壹場實戰射擊比賽開始。古天樂飾演的外匯投資經理關友博在比賽奪冠後攜槍離去,途中卻巧遇壹樁劫案。為了拯救壹名交通警察,關友博開槍制止劫匪殺警。此義舉使得他成為市民眼中的英雄,然而關友博的手下敗將——也是調查此案的警官莊子維(吳彥祖飾)卻另有發現,在他的心裏有著種種糾結,從懷疑到相信,最後在苗哥(方中信飾)的幫助下解開重重迷霧。
影片壹開始的那個關友博與歹徒槍戰的場面可以理解為關友博自己在被警察帶走後的證詞還原的現場,因為現場除了逃走的人,目擊者只有關友博壹人,這也是為什麽吳彥祖飾演的莊子維對其產生了懷疑。但苦於沒有人證物證,只能簡單起訴關友博非法使用槍械。
陪審團做出裁決前,媒體鋪天蓋地的宣傳關友博的“英雄”事跡,加上邵安娜在幕後黑手的鼎力相助,最終被判無罪。
可是壹些細節的石子再次將已經平靜案件的水面打破,壹是逃走的人尚未被抓獲,二是關友博神情緊張的在做著外匯的買賣,此時恐怕只有端坐在距離屏幕很近的朋友才能看到關友博屏幕現實的內容,他用自己賺的外匯填補邵安娜虧損的外匯。這時,又回想起方中信所飾演的苗警官的壹席話“那些富豪個個有錢,為什麽不退休呢?”。
而當關友博被逃走的劫匪襲擊後,事情的真相開始浮出水面,關友博從自己的跑車中取出了被搶的不記名債券。而之後在槍會更是爆出了他與逃走劫匪的關系。但由於沒有任何的人證物證,無法對其采取任何措施。在方中信幫助下,莊子維設了壹個局,讓蔡卓妍飾演的婷婷告訴他“交通警會醒”,果不其然,關友博在夜間的行刺被抓了個人贓並獲。
不甘心失敗的他決定做最後壹搏,但其想法早已被莊子維所掌握,失敗之後,關友博決定與莊子維比個高下。兩人幾乎同時開槍,不過畫面看得出,關友博手快壹些。莊子維擊中了關的左手,打掉了他的槍,關的子彈擊中了莊的胸口,由於避彈衣的保護,莊躲過壹劫。最後的時刻,關再次想要拿起手槍,被埋伏在上面的交通警的孿生哥哥擊斃。
通過最後的決鬥,看得出,真正的槍王之王是莊子維,因為他瞄準的是對手的手,而不是致命部位。用槍的最高境界不是殺人,而是救人。