В основе современного герба города лежит исторический герб Осташкова, утвержденный в апреле 1772 года. Геральдмейстерская контора составляла тогда гербы для вновь учреждённых городов по определённым правилам: в гербах надо было отобразить высочайшую милость и "обстоятельства или промыслы оных селений".
Герб представлял собой щит геральдической формы, поделенный по горизонтали на две части. На верхней золотой части - главе герба - изображен "рождающийся до половины" чёрный Императорский двуглавый орёл с золотыми клювами и червлёными языками. Он увенчан двумя малыми и одной большой российской Императорской короной - это и есть символ милости Ея Императорского Величества к данному поселению.
Нижняя же часть, подножие, окрашена в синий цвет - это озеро Селигер. По нему плывут три серебряные рыбы - символ природного богатства этого края, "изъясняющие рыболовный промыселъ и обильство рыбъ".
Примечательно, что в советский период исторический герб Осташкова не использовался. Однако в начале 1970 года по случаю празднованию 200-летия Осташкова был объявлен конкурс на лучший проект герба города, герб-победитель которого был одобрен и утверждён.
Отличался он тем, что поле щита было полностью зелёным и означало окружение города лесами. А на этом зелёном фоне был нанесён контур кожи, олицетворяющий древнюю профессию кожевников, с которой было связано большинство жителей города.
Внутри этой "кожи" нижняя часть была целиком и без изменений взята из старого герба, то есть, она была синяя с изображением трёх серебряных рыб. А в верхней части контура была изображена церковь или часовня и ведущая к ней дорога.
7 апреля 1992 года герб 1970-го был отменён и восстановлен герб исторический от 1772 года. Повторно герб был утверждён 27 декабря 1999-года, как официальный символ города Осташков.