Действие происходит в небольшом колумбийском городке в 1956 году. Главный герой — семидесятипятилетний полковник в отставке, ветеран Тысячедневной войны. Он живёт на окраине города со своей женой, и после смерти сына Агустина (его убили за распространение политических листовок) они влачат полунищенское существование. Полковник уже много лет ждёт письма из столицы по поводу пенсии, которая полагается ему как ветерану войны, но ему никто не пишет. В то же время он поддерживает связи с друзьями Агустина, которые подпольно занимаются оппозиционной деятельностью.
Старик возлагает надежду на боевого петуха, который сможет выиграть для них какие-то деньги, когда в январе начнутся петушиные бои, и кормит его, в то время как ему с женой бывает нечего есть. Его кум дон Сабас предлагает продать петуха, но полковник отказывается.
Полковник, имея в кармане незаконные листовки от друзей Агустина, попадает в полицейскую облаву и встречается лицом к лицу с человеком, убившим его сына. Старик проявляет самообладание и выбирается из оцепления.
До окончания срока закладной на дом остаётся два года, в доме почти не осталось еды, продана швейная машина, приносившая хоть какой-то доход. Но полковник кормит петуха, тренирует его и продолжает ждать письма. В доме не осталось ни крошки еды, жена полковника заболела. Промозглыми декабрьскими ночами полковника греют воспоминания о боевой юности. Он все надеется с ближайшим катером получить письмо. Поддерживает его и то, что уже начались тренировочные бои и его петуху нет равных. Остается потерпеть сорок пять дней, убеждает полковник впавшую в отчаяние жену, и на её вопрос, что они будут есть все это время, решительно отвечает: «Дерьмо».