清道光年間,洋人以做生意為名,大肆向我國傾銷鴉片。花旗盜首領鄭一為人俠義豪爽,他劫富濟貧,在海上專劫洋人阿走私船隻,洋人對其又恨又怕。鄭一身邊的幾名勇將七海、郭婆帶和張保仔均是他收養的孤兒,鄭一不僅將他們養大,還使他們成為武藝高強的男子漢。在一次進攻東印度鴉片船隻的戰鬥中,鄭一不幸被害。在鄭一的妻子阿晴和七海的支持下,在江湖上已小有名氣的張保仔當上了花旗的首領。郭婆帶為此心存不滿。張保仔率眾繼承義父遺志,不斷打劫洋人船隻,開倉賣糧接濟窮人,深受百姓擁戴。這一切均被微服私訪的兩廣總督林則徐看在眼裡。英國領事向林則徐施加壓力,要他剿滅騷擾英“商船”的海盜。林則徐未予理睬。張保仔結識了一位被賣青樓的女子冬潮,對其頗有好感,準備為她贖身。正當他回大本營取錢時,恰遇海上黑旗首領鄔石二。鄔石二請求花旗與黑旗聯合起來對付清政府。在郭婆帶的激將下,張保仔與郭一起潛入清水師營行刺林則徐。在水師營,張保仔被林則徐禁煙的愛國之舉而感動,放棄了行刺計劃。郭婆帶以為張保仔投靠了官府,憤而離去。張保仔與冬潮成親了。深夜,早與洋人勾結在一起的鄔石二挑唆郭婆帶率人襲擊了花旗大本營。張保仔帶領眾人奮起抵抗,鄔石二一夥落荒而逃。海島上,鄔石二企圖污辱郭婆帶的女友浪裡白條,郭婆帶一怒之下結果了這個江湖敗類。英國人背信棄義,將一萬多箱鴉片強運入港。林則徐令全省水師待命,鎮守海港。英艦公然向清水師營開炮,眼看海關將被攻破,張保仔毅然率眾前來助戰,炮火槍彈中冬潮中彈身亡,阿晴亦身負重傷。張保仔憤怒地驅船向敵艦沖去。就在這時,郭婆帶與浪裡白條也前來支援。張保仔等人沖上敵艦同英軍展開了白刃之戰。危急時刻,林則徐率援兵趕到,擊退了敵艦。慶功會後,張保仔謝絕了林則徐要他加入水師營的提議,重新登上了漁船,他要漂洋過海去實現自己的理想。