Зина родилась 20 февраля 1926 года в городе Ленинграде (ныне Санкт-Петербург) в семье рабочих. Отец её был родом из Беларуси, поэтому летом на каникулах Зина ездила отдыхать к своей бабушке Ефросинье Ивановне в деревню Зуи, которая теперь вошла в черту городского посёлка Оболь Витебской области. В 1941 году Зина закончила 7 классов и в начале июня с шестилетней сестричкой Галей приехала в Беларусь. Здесь их и застала война. Перед глазами пятнадцатилетней Зины предстали все ужасы немецко-фашистскй оккупации. Она видела, как захватчики унижали, грабили, избивали людей, издевались над советскими военнопленными, расстреливали их. Сердце юной девушки переполнялось ненавистью к фашистам и жаждой борьбы за свободу и мирное небо над головой.

В 1942 году Зина стала членом Обольской подпольной организации «Юные мстители». Поначалу ей поручили распространять антифашистские листовки и газеты. Вместе с другим подпольщиком, Женей Езовитовым, они умудрялись приклеивать листовки на самых видных и людных местах. Затем задания стали потруднее — надо было узнавать места расположения и численность вражеских частей. И с ними Зина всегда отлично справлялась, принося партизанам ценные сведения. Летом 1943 года, когда девушка была уже опытной подпольщицей, её устроили на работу в немецкую офицерскую столовую. Там ей удалось подсыпать несколько пакетиков с ядовитым порошком в пищу фашистам. В результате многие гитлеровцы отравились, а некоторые из них умерли.

Чтобы уберечь Зину от возможного ареста, подпольщики переправили её к партизанам в лес.

В партизанском отряде Зина стала разведчицей. Она научилась метко стрелять из трофейного оружия, ходила добывать сведения о численности вражеских гарнизонов в городском посёлке Улла и деревне Леоново. Несколько раз девушку отправляли для связи и в Оболь, где активно действовали юные подпольщики: то водокачку взорвут, то подожгут склады со льном и продовольствием, то пустят под откос воинский эшелон с бомбами и снарядами. Два года они вели тайную войну против фашистов. Долго не могли гитлеровцы напасть на их след, пока им не помог предатель. Он выдал гестапо двенадцать участников подпольной организации. Все они были расстреляны.

В декабре 1943 года командование партизанского отряда послало Зину установить связь с оставшимися в живых подпольщиками. Возвращаясь обратно, она попала в засаду.

Её привели к начальнику Обольской полиции.

— Кто такая?

— Мария Козлова. Работница кирпичного завода.

На минуту немец вышел, оставив Зину наедине с часовым. И тут же вернулся: за ним шагал хорошо знавший её предатель, который с наглой улыбкой произнёс:

— А, Зинаида Портнова! Давно ты сменила свою фамилию?

В тюрьме девушку били, пытали, стараясь узнать, кто её товарищи по подполью. Но Зина молчала. Ничего не добившись, полиция передала её в немецкую жандармерию. Допрос вёл сам начальник жандармерии капитан Краузе. Когда к нему в кабинет ввели Зину, гитлеровец изумлённо уставился на неё: «Ну, это же совсем ребёнок!»

— Садись.

Зина села, ничем не выдавая своего волнения.

Фашист решил прикинуться ласковым и добрым. Сначала он предложил Зине хорошо поесть, спросил, не любит ли она шоколад? Девушка молчала. Краузе не злился, не кричал, делал вид, что не замечает её упорного молчания. Улыбаясь, пообещал свободу. Затем приказал отвести её не в тюрьму, а в комнату, находившуюся здесь же, в здании жандармерии. Ей принесли обед из двух блюд, белый хлеб, конфеты.

На следующий день утром Зину снова вызвали к капитану. С подчёркнутой вежливостью Краузе спросил, как она себя чувствует в новой обстановке.

— Это всё мелочи, — сказал он, не дождавшись ответа. — Одна небольшая услуга — и ты идёшь домой. Скажи, кто твои товарищи и твои руководители?

Фашист не сомневался в том, что девушка вот-вот начнёт говорить. Однако Зина молчала. Тогда Краузе решил переменить тактику. Немец достал пистолет, положил его на стол и сказал, что ему ничего не стоит нажать на спусковой курок и покончить с Зиной навсегда, но он всё-таки надеется на её разум и сговорчивость. Обещал личное покровительство при сотрудничестве.

Поскольку Зина продолжала молчать, нервы у фашиста не выдержали. Размахнувшись, он ударил девушку кулаком в грудь. Зина отлетела назад и стукнулась головой о стену. Маленькая, худенькая, она тут же поднялась и, выпрямившись, снова твёрдо стояла перед оккупантом.

— Нет, я не расстреляю тебя, Портнова! — заорал Краузе. — Я знаю, это ты отравила наших офицеров. Я тебя повешу...

Вдруг на улице просигналила легковая машина и, резко затормозив, остановилась у дома. Краузе подошёл к окну взглянуть, кто приехал. В тот же момент Зина бросилась к столу и схватила пистолет. Гитлеровец не успел ещё осознать, что произошло, как девочка навела на него его же оружие.

Выстрел — и убитый фашист рухнул на пол. Вбежавший на выстрел офицер был также застрелен. Зина бросилась в коридор, выскочила во двор, а оттуда в сад. По липовой аллее она побежала к берегу реки. За рекой — лес. Только бы успеть добежать! Но её уже преследовали фашисты. Одного из них она смогла подстрелить, второй продолжал погоню. Девушка обернулась, опять нажала спусковой крючок... Выстрела нет. В обойме кончились патроны. Зину схватили.

В январе 1944 года её до смерти замучили в гитлеровских застенках.

Бронозовый бюст Зинаиды Портновой

Немало подвигов совершили юные белорусы в годы Великой Отечественной войны. И подвиг Зинаиды Портновой также не забыт. В 1958 году ей присвоили звание Героя Советского Союза. Её именем названы улицы в Санкт-Петербурге и Полоцке, городских посёлках Оболь и Шумилино. На доме, где она жила в 1941—43 годах, установлена мемориальная доска.