По разным оценкам, на мероприятие в центре города собралось от двух до пяти тысяч человек. Участники акции прошли Маршем памяти от станции метро Горьковская до Марсова поля. И хотя шествие не было согласовано, полиция не препятствовала движению. Впрочем, совсем без инцидентов не обошлось: был задержан один из активистов, который на подходе к Троицкому мосту развернул плакат со словами Ильдара Дадина «Давайте станем гражданским обществом!».
На Марсовом поле митингующие достали растяжки со словами «Свобода стоит дорого», «Борись» и красные листовки с вопросом «Кто заказал?». Несколько активистов держали плакаты с требованием отставки Георгия Полтавченко. Чуть поодаль в одиночных пикетах стояли активисты «Национально-освободительного движения», уже привычные на таких мероприятиях.
Митинг начался с минуты молчания, затем со сцены зазвучали траурные речи. Одновременно над головами людей взметнулся флаг США, послышались крики "Провокация!", завязалась потасовка. Несмотря на инцидент, сопредседатель петербургского отделения партии ПАРНАС Андрей Пивоваров продолжил делиться воспоминаниями о Борисе Немцове.
В целом, мероприятие в Петербурге прошло спокойно. Сменяющие друг друга спикеры произносили со сцены похожие речи о свободе и демократии. Участие в митинге приняли и трое депутатов петербургского Заксобрания - Максим Резник, Борис Вишневский и Михаил Амосов. Последний посоветовал оппозиционерам не только критиковать власть, но и задуматься над тем, что каждый из них может сделать на благо России.
Борис Вишневский заявил, что он дорого бы дал за то, чтобы митинга не было. Депутат пообещал, что пока организаторов и заказчиков убийства Немцова не найдут, уличные акции будут проводиться регулярно. После того, как митинг закончился и горожане покинули Марсово поле, на снегу осталось несколько плакатов с лозунгом «Нет Майдану!».