Ветеран Великой Отечественной войны и кавалер орденов «Отечественной войны» II степени и «Красной Звезды», бывший железнодорожник, а ныне пенсионер Иван Фёдорович Афонин скромно живёт со своей любимой и единственной внучкой Катей, студенткой музыкального училища. В соседнем доме проживает молодой бизнесмен Борис Чуханов, владеющий палатками на рынке и часто гуляющий у себя на квартире вместе со своими приятелями — Вадимом Пашутиным (сын полковника милиции и одноклассник Кати) и Игорем Зворыгиным. По средам эта троица отмечает «женский день», приглашая проституток.
В среду 30 июня никого пригласить не удалось. Обсуждая это, парни замечают возвращавшуюся домой Катю. Игорь и Вадим заманивают её в квартиру Бориса под выдуманным предлогом, что у Бориса якобы День рождения и его никто не поздравил. Катя вначале колеблется, но парни настойчивы и она принимает приглашение. Когда же девушка собирается уходить, парни загоняют её в спальню, где совершают над ней групповое изнасилование. После этого Вадим, который поначалу пытался отговорить приятелей от их затеи, предлагает разбежаться, но Борис, узнав, что Катя живёт с дедом-пенсионером, успокаивает его, т.к. уверен, что старик ничего не сможет им сделать. Игорь же тем временем, успокаивая Катю, предлагает ей выйти за него замуж и даёт деньги (50 долларов США), которые она, тут же, выйдя на улицу, выбрасывает.
Придя домой в слезах, Катя не может ничего сказать, но Афонин быстро догадывается о произошедшем, заметив кровавый синяк у неё на ноге и, узнав, кто это сделал, тут же, вооружившись кухонным топором, бежит разбираться с насильниками. По пути его останавливает сосед — участковый уполномоченный милиции Алексей Подберёзкин, нянчивший Катю в детстве. Узнав о происшествии, Алексей, понимая, что старику не справиться с тремя здоровыми парнями, отправляет его обратно домой, а сам тут же вызывает милицию. Прибывший наряд во главе с капитаном Кашаевым задерживает насильников. Несмотря на то, что каждый из них пытается оправдаться, сказав, что никакого насилия не было, всё было по согласию, опытный офицер быстро добивается признательных показаний, так как один из его сотрудников находит улику — окровавленную простынь. Но в последний момент в дело вмешивается приехавший на вызов соседей Чуханова полковник милиции Николай Петрович Пашутин (отец Вадима) и обвинение разваливают. Уже на следующий день следователь вызывает Катю повесткой, однако относится к девушке предвзято, занимает позицию насильников, нагло смеётся Кате в лицо, оказывает на неё давление и ссылается на то, что нет прямых доказательств, т. к. она сама добровольно пошла в квартиру Бориса, а придя домой, приняла ванну и смыла все «улики». Прокуратура, куда обращается Афонин, тоже не даёт никакого результата — прокурор заявляет, что дело закрыто за отсутствием состава преступления и советует ветерану получше воспитывать внучку. В сердцах Афонин оскорбляет прокурора и уходит.
Больше не надеясь на правосудие и не желая мириться с несправедливостью органов, Афонин решает действовать сам: первым делом он продаёт за 5000 долларов знакомому банкиру свой дом в родной деревне. Тем временем, воспользовавшись его отсутствием, полковник Пашутин, пытаясь загладить вину своего сына и его приятелей, передаёт Кате конверт с деньгами. Но старик, вернувшись домой, тут же относит конверт с деньгами обратно полковнику и швыряет деньги ему в лицо. Затем, за ужином Катя сообщает деду, что соседка Марья Гавриловна уехала в деревню на три недели и оставила ключи для присмотра за её попугаем. Афонин тут же идёт в квартиру соседки и замечает, что её окна выходят как раз на окна квартиры Бориса. Далее Афонин отправляется в Москву, где, походив по барахолкам, выходит на нелегальных торговцев оружием, у которых приобретает снайперскую винтовку СВД с глушителем. При испытании оружия Афонин так метко поражает цели, что один из торговцев восхищённо называет его «Ворошиловским стрелком».
Наступает среда 28 июля. Троица, как обычно, собирается на квартире у Бориса, и Афонин начинает свою месть — стреляет из винтовки в бутылку шампанского, которую в тот момент держит между ног Игорь. От пули бутылка разрывается, и её осколки вместе с пулей наносят Игорю тяжёлое ранение в пах. Несмотря на то, что за ним быстро приезжает скорая помощь, помочь Зворыгину уже невозможно: он хоть и остаётся в живых, но становится кастратом. Пашутин тут же начинает тщательно и настойчиво допрашивать сына и Чуханова, но те не могут ничего сказать. Спустя неделю, в очередную среду, Афонин, возвращаясь домой из магазина, замечает Бориса, приехавшего на новом автомобиле BMW E 34. Он тут же идёт в соседскую квартиру, дожидается момента, когда Борис садится за руль, и стреляет прямо в бензобак. Происходит взрыв, который уничтожает машину полностью. Несмотря на то, что Борис остаётся в живых (его взрывом выбрасывает из машины), он тем не менее получает серьёзные ожоги паха, ягодиц и части спины.
В тот же вечер, возвращаясь домой, Афонин узнаёт, что это участковый Алексей Подберёзкин, догадавшийся о действиях пенсионера и сочувствующий ему и Кате, вовремя забрал из квартиры и тайком спрятал винтовку у себя в сарае. Участковый неофициально конфискует винтовку, отпуская Афонина домой. На прощание он просит Афонина больше не «геройствовать», на что Афонин заявляет, что он просто не представляет, как таким, как он, выжить по справедливости в современном обществе.