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