Город расположен на реке Вязьме в 175 км от Смоленска и в 212 км от Москвы, на Вяземской возвышенности, в районе, где река резко меняет направление своего течения с южного на северо-западное.
Узловая железнодорожная станция Вязьма на линиях Москва — Брест и Торжок — Брянск.
Город расположен на Старой Смоленской дороге, издавна соединявшей Москву с европейскими государствами.
День рождения города традиционно отмечается в День Святой Троицы.