Как правильно: в городе Москва или в городе Москве? Правильно: в городе Москве.
Правило таково: географическое наименование, употребленное с родовыми наименованиями город, село, станция, поселок, река и под., выступающее в функции приложения, согласуется с определяемым словом, то есть склоняется, если топоним русского, славянского происхождения или представляет собой давно заимствованное и освоенное наименование. Правильно: в городе Москве, в г. Санкт-Петербурге, в городе Владивостоке.
Обычай не склонять географические названия укоренился в профессиональной речи военных и топографов и под влиянием этого профессионально-терминологического языка широко распространился в современной речи, однако нормой его считать нельзя.