李靖原名李藥師,後被封為衛國公,人稱李衛公。他的先祖從後魏到隋朝,都是高官顯貴,隋朝的名將韓擒虎是李靖的舅舅。
李靖青年時代參加科舉,擔任地方官。他最喜歡的卻是鑽研兵法,經常和韓擒虎討論兵法,受到韓擒虎和楊素的重視。
當隋煬帝的暴政引起天下大亂的時候,群雄趁機興兵,李靖仍然忠於隋朝。在李靖擔任馬邑郡丞時,他看到上司太原留守李淵想謀反,於是決定向巡遊江都的隋煬帝告密。李靖受到李淵的控製,無法逃脫。他把自己混成囚犯,讓部下送往江都。不幸的是,走到半路的李靖被李淵抓回去。就在將要被斬的時候,李靖大喊:"你起兵為天下百姓過上好日子,想成就霸王之業,為什麼用私家的恩怨來殺忠臣呢?"
李淵欣賞李靖的話,李世民求父親別殺李靖。李靖從此投靠了李世民,成為李世民的猛將。
李靖追隨李世民東征西討,依次鏟除了隋末的群豪,就剩下南方的蕭銑占領長江中下遊,號稱梁帝,經常和唐朝為敵。鏟除蕭銑是統一天下的關鍵。這個重任落在李靖的頭上。
公元620年,梁朝內部出現了動亂,君臣決裂,是滅梁的大好時機。李靖馬上向唐高祖李淵稟告滅梁十策,建議率水軍,從四川順江直下,襲擊梁都江陵,另遣部隊假裝進攻漢水,吸引梁軍,再四路進軍江陵。李淵采納了他的十策,命他和趙郡王李孝恭共同承擔滅梁大任,實際上由李靖指揮。
公元621年,李靖奉命采取軍事行動。唐軍偏師占領了安襄兩州,吸引梁軍向北集結。四川兩地唐軍乘江水大漲的機會,乘戰艦二千多艘順流直下,占領了扼守長江要道荊門山的宜都,又占領了清江,殲敵一萬,主將文士弘敗逃。李靖率軍來到江陵城下,打敗了梁守將楊君茂、鄭文秀,俘虜了四千敵軍。其他三路唐軍也趕到了,把江陵重重包圍。
由於唐軍行動太快,梁軍大部分都散在江南和嶺南,結果江陵的兵力很少。但蕭銑是久經沙場的猛將,雖然大兵壓境,但是他憑借城高溝深,水軍精銳,仍然全力抵抗,率領水軍迎戰靠近江陵的李靖軍。李孝恭剛要率軍開戰。李靖勸說,梁軍士氣太旺,不宜和他們決一死戰,如果等一天,他們就會分兵守城,到時候再攻打他們。李孝恭沒有接受,仍然率軍出戰,被梁軍打敗,逃到南岸。梁軍戰勝以後,掠奪了唐軍的軍資,結果行動緩慢。李靖率軍反擊,打敗了梁軍,梁軍水軍覆滅,蕭銑隻能固守江陵了。
李靖命令把繳獲的舟艦全都散棄在江中,讓它們漂流而下。眾將大驚。李靖說:"蕭銑地廣兵眾,我們最怕的是各地的梁軍前來援救。如果江陵攻不下,敵軍援軍紛紛趕來,那我們就回不去了。現在我把舟艦丟棄,讓它們順江而下,梁軍看見了會懷疑江陵失守,嚇得不敢援救,等他們前來察看情況時,來回一趟需要十天至一個月,我們趁機攻下江陵,捉住蕭銑。"
下遊梁軍見棄艦流來,嚇得不敢向江陵進發,蕭銑苦盼援軍不來,已經箭盡糧絕,被迫出城投降。李靖率軍進入江陵,安撫梁軍將士。梁朝的各路援軍看到江陵失守,唐軍寬大,於是紛紛歸降。李靖又奉命安撫嶺南,抄了梁朝的所有財產。