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