Географическое название, употребленное с родовыми наименованиями город, село, деревня, хутор, река и др., выступающее в функции приложения, согласуется с определяемым словом, то есть склоняется, если топоним русского, славянского происхождения или представляет собой давно заимствованное и освоенное наименование.
Правильно: в городе Москве, в городе Санкт-Петербурге, из города Киева; в деревню Ивановку, из деревни Ольховки, в селе Шушенском, под хутором Михайловским; у реки Волги, долина ручья Сухого.
Склоняются обе части в наименовании Москва-река: Москвы-реки, на Москве-реке и т. д. В разговорной речи встречаются случаи несклоняемости первой части: за Москва-рекой, на Москва-реке и т. д. Но такое употребление не соответствует строгой литературной норме.
Географические названия в сочетании с родовым словом обычно не склоняются в следующих случаях:
- когда внешняя форма названия соответствует форме мн. числа: в городе Великие Луки, в городе Мытищи;
- когда род обобщающего нарицательного слова и топонима не совпадают: на реке Енисей, у реки Хопёр, в деревне Парфёнок (однако это замечание не относится к сочетаниям со словом город, поэтому правильно: в городе Туле, из города Москвы.
Кроме того, обнаруживают тенденцию к несклоняемости приложения-топонимы среднего рода, оканчивающиеся на -е, -о: между селами Молодечно и Дорожно, в городе Видное (это название не склоняется, т. к. при склонении сложно будет восстановить исходную форму: в городе Видном – это город Видный или город Видное?).
Географическое название, употребленное с родовыми наименованиями город, село, деревня, хутор, река и др., выступающее в функции приложения, согласуется с определяемым словом, то есть склоняется, если топоним русского, славянского происхождения или представляет собой давно заимствованное и освоенное наименование.
Географические названия в сочетании с родовым словом обычно не склоняются, когда род обобщающего нарицательного слова и топонима не совпадают.
Кроме того, обнаруживают тенденцию к несклоняемости приложения-топонимы среднего рода, оканчивающиеся на -е, -о (с родовым словом): между селами Молодечно и Дорожно.
Топонимы славянского происхождения, оканчивающиеся на -ово, -ево, -ино, -ыно, не склоняются в сочетании с родовым словом. Подробнее см. в "Письмовнике".
Таким образом, верно: в городе Полярном, в городе Кириллове, в городе Бабаево, в селе Ферапонтово, в селе Хвалевском, в селе Спасское-Куркино.
Если родовое слово сокращено до г. или с., правила те же, что и со словами город и село.