Герб Санкт-Петербурга ведет свою историю с Петровских времен. К началу 1710-х годов с городом и Ингерманландской губернией в качестве территориального знака ассоциировалось изображение скрещенных ключа и меча - символов апостолов Петра и Павла, помещенных на колонне, завершаемой короной. Екатерина II специальным рескриптом закрепила существовавший и одобренный Сенатом герб Санкт-Петербурга 7 мая 1780 года.
Впоследствии эта пиктограмма была изображена на знамени Невского полка и личной печати Петра I. Одновременно для Санкт-Петербургских полков в 1712 году был разработан и другой знак - золотое пылающее сердце под золотой короной и серебряной княжеской мантией.
В 1722 году Петр I учредил особую герольдмейстерскую контору, которой было поручено сочинение гербов, в том числе и городских. Вскоре появилась новая эмблема для знамени Санкт-Петербургского полка: золотой скипетр с перекрещенными морским и речным якорями на красном поле, которая впоследствии и стала гербом Санкт-Петербурга. Скипетр указывал на столичный статус города, а якоря характеризовали его как морской и речной порт.
В 1729 году граф Бурхард Миних составил гербовник, в котором герб Санкт-Петербурга был представлен с некоторыми уточнениями: скипетр завершен государственным гербом - двуглавым орлом, а над щитом помещена Императорская корона. Этот герб, вместе с другими, был представлен в Военную Коллегию и удостоился Высочайшего утверждения.
Екатерина II специальным рескриптом закрепила существовавший и одобренный Сенатом герб Санкт-Петербурга 7 мая 1780 года. Тем самым императрица официально жаловала герб «граду Петра», а также была выдана грамота «На права и выгоды» с изображением герба: «В красном поле два серебряных якоря, положенные крестом и на них золотой скипетр».
Якоря расположены по диагоналям лопастями вверх. Один из якорей двухлопастный - это морской якорь, другой - четырехлопастный - «речная кошка». Скипетр завершен двуглавым орлом. Екатерина Великая в жалованной грамоте обязывала всех служащих использовать герб во всех городских делах.
Долгое время эмблема была неизменной. Лишь в 1856 году Александр II одобрил изменения, внесенные в петербургский герб, представленные бароном Кене. Герб отличался от прежнего тем, что гербовой щит венчался императорской короной и лазоревыми лентами ордена святого Андрея Первозванного, за ними изображались два скрещенных скипетра, символизировавшие равнозначность двух столиц - Петербурга и Москвы.
Именно этот герб в 1878 году был возведен и в ранг губернского герба. Такой рисунок столичного и губернского гербов сохранялся вплоть до революции 1917 года. В советские времена с герба города, тогда Ленинграда, были убраны императорские символы.
В 1991 году в связи с возвращением Санкт-Петербургу его исторического первоначального названия и всей символики, официально был утвержден и герб Санкт-Петербурга, который жаловала ему Екатерина Великая.
Современный вариант герба города на Неве был принят 23 апреля 2003 года и практически не изменился в сравнении с первоначальным вариантом. Хотя добавлялись некоторые атрибуты, но первоначальная идея сохранилась полностью.