Akcja trzeciej części przygód Richarda Sharpe'a (Sean Bean) rozwija się pod murami twierdzy Badajoz w Hiszpanii, którą Lord Wellington (Hugh Fraser) oblegał w 1812 roku. Oddział wyborowych, zostaje oddany pod komendę, świeżo co przybyłego z Anglii pułkownika Windhama (Clive Francis). Sharpe zdegradowany pełni funkcję kwatermistrza, a jego ludzi zamiast strzelb dzierżą łopaty. Swoją drogą do oddziału dołącza, jak dobrze znany Richardowi, tak też przez niego znienawidzony, sierżant Obadiah Hakeswill (Pete Postlethwaite), który przysparza coraz to nowych kłopotów całej kompanii wyborowych. Sharpe ma na głowie jednak wiele innych problemów, więc sprawa Hakeswill'a pozostaje na drugim planie. Richard za wszelką cenę pragnie odzyskać stopień kapitana w czym może mu pomóc szturm na mury Badajoz. W dodatku Teresa(Assumpta Serna) i córeczka Antonia (Tak! Richard Sharpe został ojcem) znajdują się w twierdzy...