Слово город в словосочетании в городе Москве является главным, от него можно задать вопрос: в городе каком? в Москве. Существительное Москва в форме предложного падежа является определением, у которого имеется свое название -приложение.
Заданный вопрос касается синтаксической нормы русского языка -согласование приложений.
Обычно не согласуются вот такие приложения (названия): нет конфет " Мишка косолапый" (родительный падеж существительного и именительный падеж приложения), о поэме "Мцыри", на самолете "Боинг".
Не согласуются традиционно приложения:
1) названия озер, гор, островов и т.д.,например: у бухты Золотой Рог, в пустыне Каракум, у горы Арарат;
2) астрономические названия - на планете Венера, около планеты Марс;
3) названия станций и портов - на станции Воронеж, в порту Одесса;
4) иностранные названия - в штате Техас.
А вот названия городов, рек обычно согласуются в падеже. Поэтому правильно скажем и напишем:
в городе Москве, на реке Днепре.
Правда, составные наименования не согласуются: в городе Минеральные Воды, на реке Западная Двина.