Одесса, 1946 год. Ночь. Работники Одесского Уголовного Розыска проводят операцию по захвату банды Сеньки Шалого. Руководит операцией Давид Гоцман — подполковник, начальник отдела УГРО по борьбе с бандитизмом. Семья Гоцмана погибла во время войны, единственные близкие — два друга: лётчик Марк, контуженный на фронте, и Фима Петров по кличке «Полужид» — бывший вор-карманник, вплотную присоединившийся к Уголовному Розыску. Фима раскалывает Сеньку Шалого, и тот признаётся, где его люди спрятали награбленное. Фима и Гоцман находят при помощи беспризорника Мишки Карася схрон с тысячью комплектов военного обмундирования. Гоцман обо всем доложил в Военную Прокуратуру. В эту же ночь к схрону подъезжает грузовик, из которого выходит человек в форме капитана Советской Армии. Охранник требует у капитана документы, но тот берёт инициативу в свои руки и требует того же у последнего. В момент, когда один из охранников документы всё же предъявляет, неизвестный капитан расстреливает охрану.
Свидетелем последних событий становится Мишка Карась. Ему удается позвать на помощь УГРО. Гоцман и его люди гонятся за грузовиком. В конечном итоге капитан, он же бандит по кличке Чекан взрывает грузовик с обмундированием и уходит. За расследование дела берется Фима. Он узнает, что преступники при угоне обмундирования использовали поддельные накладные. Гоцман отмечает День Рождения впервые за 4 года и знакомится с Норой, соседкой Фимы.
При попытке выяснить автора поддельных накладных гибнет Фима, и дело приобретает для Гоцмана особое значение; теперь это уже не просто расследование, а месть за друга. Давид встречается с ворами и обещает «каждого второго лично задушить», если не найдут убийцу его друга Фимы. Воры дают информацию о Чекане, который работает на некоего «Академика».
Информацию об Академике знает контрабандист по прозвищу «Седой грек». Он же подтверждает что виделся с Чеканом. Люди Гоцмана его арестовывают, но по дороге в трамвае его убивает человек Чекана. Чекан вместе с бандитами пытается вывезти со склада оружие, но прокалывается на паролях, введенных главным интендантом Одесского военного округа Воробьевым, но его банде с боем удается вырваться. А вскоре интендант Воробьев был убит. Гоцман совместно с контрразведкой допрашивает одного из власовцев, который говорит о том, что Чекан во время войны проходил обучение в немецкой разведшколе. Там же обучался и таинственный агент «Академик»...
Чекан с любовницей — бандиткой Идой Кашетинской пытается уплыть в Турцию с контрабандистами. Штехель и Толя Живчик задерживают его и дают задание распродать ворам большую партию оружия, чтобы руками воров бороться с Советской властью. В результате Одессу захлестнул вал убийств и грабежей. В это самое время Маршал Советского Союза Георгий Константинович Жуков назначается на должность командующего войсками Одесского военного округа и с присущей ему жёсткостью и прямолинейностью пытается сразу, на «раз-два» расправиться со всей преступностью послевоенной Одессы. Не до конца продуманные попытки уничтожить преступность одним махом скорее мешают, чем помогают. Давид Гоцман возражает против подобных методов — за это его арестовывают, обвиняют в антисоветском заговоре и избивают.
Маршал Жуков не мог не заметить стойкости и смелости Гоцмана. Дело об антисоветском заговоре закрыли, и Гоцмана отпустили. Давид становится свидетелем побега Мишки Карася из приюта, куда его он устраивал. Понимая, что Мишке в приюте лучше не станет, Гоцман принимает решение его усыновить. В город приезжает любимый всей Одессой Леонид Утёсов. На его выступление сходятся все: офицеры, мирные граждане и даже воры. Однако приезд Утесова являлся лишь частью операции, проводимой контрразведкой по приказу Жукова. Воров арестовывают, а между этим в Одессе возникают бандитские погромы, которые организовали люди Академика.
Гоцман узнал местонахождение Чекана. Его выдал Сенька, за что он будет убит. Завязывается перестрелка у дома Чекана, но тот уходит. В доме находят Родю. Его забирают в УГРО, где его излечивает Арсенин. Из дома Чекана раздается звонок от дежуривших там капитана Якименко и майора Довжика. Гоцман и Кречетов направляются туда, спрятав Родю в шкаф, где за ним приглядывал ефрейтор Охрятин. Вызов оказался ложным. Возвратившиеся Гоцман и Кречетов обнаруживают убитого Родю и подозревают во всем Охрятина. Но предателем оказался рядовой Лужов. Он задушил Родю шнурком от нательного крестика. Лужову удается бежать. За ним гонятся сотрудники УГРО, но не успевают его поймать, рядового случайно застрелил капитан Якименко. Поиски Академика обостряются.
В Одессе появился Виктор Платов — бывший карточный шулер и комвзвода, служивший у Гоцмана. Давид Маркович освобождает авторитетных воров с условием, чтобы те прекратили погромы и грабежи. Воры согласились. Гоцман приглашает Нору на свидание, но она не явилась. Майор Довжик встречается с неизвестными, те отбирают у него оружие.
На Гоцмана совершают покушение. К счастью, он ночевал у Кречетова, а при взрыве квартиры погиб его дальний родственник. Контрразведка организует операцию под кодовым названием «Маскарад»: офицеры переодеваются в дорогие костюмы и проводят ежедневный отстрел бандитов. Из Москвы возвращается Марк, где ему делали операцию. Военврач Арсенин сообщил Гоцману, что Марк что-то знает про убийство Фимы, но не может сказать. Подозрение Гоцмана падает и на врача. Нора собирается уехать из Одессы и признается Гоцману, что она не Нора, а жена следователя, которого расстреляли перед войной. Гоцман её отпускает, но Нора остается в Одессе.
Майор Махал Махалыч приводит Гоцмана к эзотерику, который говорит, что «Академик» во время войны находился в Одессе и проходил обучение в немецкой разведшколе и сейчас служит в органах. Под подозрением практически все: ст. оперуполномоченный майор Довжик, военврач Арсенин, майор прокуратуры Кречетов и даже капитан Якименко. Операция «Маскарад» идёт полным ходом — каждую ночь по приказу Жукова отстреливают 60-100 бандитов. На допросах «стрелки» молчат, как им приказано. Гоцман понял, что эти отстрелы организованы Жуковым. Случайно военврач Арсенин узнаёт, что майор прокуратуры Кречетов врёт и не был на Белорусском фронте. Впоследствии он исчезает.
На следующий день Арсенин не явился на работу. Позже выясняется, что он пропал без вести. Гоцман подозревает майора Кречетова. Тот признается, что не был на Белорусском фронте и во время войны находился в одесском подполье, а факты, указывающие на то, что Кречетов и есть «Академик», направляет на Гоцмана. Начальник контрразведки Чусов подтвердил его слова.
Теперь зрителю предельно ясно, что «Академик» — не кто иной, как майор Виталий Егорович Кречетов. Гоцману всё-таки удалось его вычислить, однако контрразведка подполковнику не верит. «Академик» встречается со Штехелем и даёт ему указание: избавиться от его племянника, который следил за ним. Лёня Тишак упорно разыскивает пропавшего Арсенина, но все усилия тщетны. Полковник Андрей Остапыч «женит» Нору и Давида. Операция «Маскарад» завершается, отстрел воров прекратился. Гоцман предложил Чусову план накрытия бандеровцев разом. С планом ознакомился маршал, Гоцмана вновь арестовывают.
Кречетов рассказывает все Норе, ее арестовывают, а после Мишке. Тот его ударяет со словами: «Ну и сука ты, майор!». Академик велит Чекану похитить сына Гоцмана. Чекан и Толя Живчик прибывают на место, но опаздывают, Мишку похитил бывший подчиненный подполковника Гоцмана комвзвода Платов. Маршал Жуков объявляет о начале военных учений в Молдавии. Для Академика это шанс захватить Одессу. Тоня Царько из ревности наблюдает за Кречетовым, особенно когда тот встречается с бандитами и Платовым, который принимает предложение главаря банды захватить Одессу.
Академик случайно убивает Тоню, когда выяснил, что та за ним следила. Захват Одессы идет полным ходом, и Платов принимает в нём активное участие. Но на самом же деле Платов являлся соучастником операции «накрытия бандеровцев», аресты Гоцмана и Норы были инсценированы. Замаскировавшихся бандитов встречают замаскировавшаяся контрразведка, которая полностью ликвидировала их, конечно не без помощи капитана Лехи Якименко, взявшего целый рейд. Чекану удается бежать от военных. Раненный, он пытается вместе с людьми Академика, Идой и Штехелем сбежать из Одессы, но бандиты убивают его и двух последних, так как не желают находиться в подчинении немецких диверсантов. А между Академиком и людьми Гоцмана происходит перестрелка, в ходе которой майор Кречетов признается взятому им в заложники Гоцману в том, что именно он убил Фиму, Арсенина, именно он стоял за убийством Роди, а также в том, что он всегда ненавидел Советскую власть, что она всем жизнь испортила. «Вы все время воюете, а когда не воюете, друг друга убиваете, чужое делите». На какое-то мгновение Кречетов останавливает перестрелку и выходит с Гоцманом. Освободившийся Давид сбрасывается вместе с Академиком с большой высоты и выживает, приговаривая: «Извиняйте, если шо не так». Майор гибнет. Финал фильма: Гоцман приезжает в интернат забрать Мишку, а к нему навстречу из машины бегут Нора и его друзья.