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