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

Узловая железнодорожная станция Вязьма на линиях Москва — Брест и Торжок — Брянск.

Город расположен на Старой Смоленской дороге, издавна соединявшей Москву с европейскими государствами.

День рождения города традиционно отмечается в День Святой Троицы.