Junbao (Jet Li) est un moine qui grandit dans un temple Shaolin avec son ami Tienbao. Leurs compétitions amicales pour voir qui est le plus fort les met souvent en difficulté. Lors d'une compétition pour une promotion à un rang plus élevé à Shaolin, Tienbao manque de tuer un autre étudiant pour tricherie et l'utilisation d'une arme dissimulée.
Après un désaccord avec un maître, qui refuse de croire Tienbao, une bagarre éclate ce qui entraîne l'expulsion de Junbao et Tienbao du temple. Ayant vécu dans un temple toute leur vie, ils ont du mal à s'adapter au monde extérieur et finissent par se mêler à des rebelles locaux qui volent fréquemment un gouverneur corrompu et redistribuent les bénéfices aux pauvres.
Tienbao, qui était toujours très ambitieux et compétitif, se fatigue et se désillusionne de leur nouvelle vie, accepte une offre du gouverneur pour rejoindre son armée. Les deux amis d'enfance décident à contrecœur de prendre des chemins différents. Voyant une opportunité de promotion dans l'armée, Tienbao tend un piège à Junbao et aux rebelles en leur donnant de fausses informations.
De nombreux rebelles sont tués lors de la bataille qui s'ensuit et Junbao, incrédule que son ami l'ait trahi, perd temporairement la raison. Il ne se rétablit que en découvrant l'art du Tai Chi avec l'aide de ses amis et d'un livre que son ancien maître lui avait donné avant de quitter Shaolin.
Lors d'un affrontement final, Junbao tue Tienbao après avoir réalisé que son ami d'enfance est au-delà du salut.