Przed powstaniem Zamościa handlowy szlak z Lublina do Lwowa (fragment traktu północ - południe, łączącego Bałtyk z Morzem Czarnym) prowadził przez Krasnystaw, Hrubieszów i Bełz albo Turobin, Szczebrzeszyn, Lubaczów. Wraz z Zamościem powstała droga pośrednia, krótsza do Lwowa (z Krasnegostawu do Tyszowiec, później jeszcze krótsza przez Tomaszów i Rawę Ruską).
Trakt ten przecinał się tu z przedzamojskim starym traktem wschód - zachód, tj. szlakiem "ruskim" z Kijowa do Wrocławia i Pragi, przez Łucki, Włodzimierz, Horodło, gdzie rozdzielał się na dwie drogi - Hrubieszów, Krasnystaw, Kazimierz oraz Tyszowce, Szczebrzeszyn, Sandomierz. Z powstaniem Zamościa, znalazł się on między Uściługiem, Hrubieszowem, a dalej Szczebrzeszynem i Zawichostem.
Inne mniej ważne szlaki prowadziły z Brześcia do Jarosławia, z Kamieńca do Wrocławia, z Wołynia do Sandomierza (handel wołami). Tędy też prowadziły drogi kupców podążających ze Lwowa do Poznania i Wrocławia. W XIX w. w urzędowych dokumentach pisano Gościniec Hrubieszowski, w odróżnieniu np. od Drogi Stabrowskiej.
W obrębie murów tranzyt do XVIII w. odbywał się między Bramą Lwowską i Szczebrzeską, przez ul. Grodzką (dla wygody z poszerzonym wjazdem od strony bramy i tak ukształtowanym budynkiem klasztoru bonifratrów).
W 1817 władze carskie wprowadziły podział na trakty wielkie, średnie (w tym handlowe i militarne) i drogi uboczne, szer. 7, 5 i 2 sążni (ok.12,5, 9 i 3,5 m).  Zamość objęty był traktem wielkim (Warszawa - Lublin - Zamość, droga bita nr 39, 238 i 1/2 wiorsty) oraz 4 militarnymi tj.:
- Uściług - Hrubieszów - Zamość - Zwierzyniec - Zawichost,
- Zamość - Tworyczów - Wysokie - Lublin,
- Zamość - Turobin - Bełżyce - Kazimierz,
 - Zamość - Turobin - Kraśnik.
W Łopienniku znajduje się kamienny słup oznaczający połowę drogi między Lublinem i Zamościem z informacją Robiono drogę od Piasków do Zamościa przez czas od lipca 1834 do września 1835 (62 km, inż. Maciej Bayer). Przed 1870 Zamość połączony był już bitą drogą ze Lwowem.
W 1918 Zamość połączony był szosą z Tomaszowem, Krasnymstawem i Biłgorajem (szer. klinkieru od 5 do 3,7 m) i drogą gruntową z Krasnobrodem i Hrubieszowem. Tę ostatnią zbudowano dopiero w ramach COP, jako część arterii Śląsk - Wołyń. W 1925 dzielono je na państwowe:  nr 9 "lwowska" (Warszawa - Tomaszów), nr 7 "wołyńska" (do Hrubieszowa, w budowie) i nr 9/5 "biłgorajska" (nawierzchnia drewniana), oraz powiatowe (do Skierbieszowa i Krasnobrodu). W 1927 ustalono nową numerację dróg w Polsce, nr 8 otrzymała droga Warszawa -  Lublin - ZAMOŚĆ - Bełżec - Żółkiew - Lwów - Tarnopol - Zaleszczyki - Okopy św. Trójcy (684 km).
Po wojnie do poł. l. 80. przez Zamość prowadziła (z Warszawy do Lwowa) droga międzynarodowa E-81, następnie zdegradowana do rangi drogi krajowej nr 17, od 1996 ponownie droga międzynarodowa E-372. Z Zamościa prowadziła też droga nr 843 do Chełma, nr 847 do Hrubieszowa, nr 849 do Woli Obszańskiej i nr 858 do Niska.
Wg obowiązującego od 1999 podziału, przez miasto prowadzą drogi krajowe: Warszawa - Hrebenne 5,5 km i Szczebrzeszyn - Zosin (przez ul. Sadową 5,9 km; wojewódzkie: z Zamościa do Woli Obszańskiej 3,5 km i do Chełma 3,2; powiatowe 48,3 km (m.in. ul. Graniczna, Żdanowska, Zamoyskiego, Okopowa, Reja, Majdan).
W 17 XI 1993 otwarto fragment obwodnicy Hetmańskiej, od ul. Starowiejskiej do Lwowskiej. W 2003-2004 powstał 4 km odcinek obwodnicy od ul. Lubelskiej do Starowiejskiej (2-pasmowa, 2 ronda, oświetlona), koszt 5 mln euro.
W 1990 na drogach krajowych do i z miasta notowano ruch pojazdów średnio 16.650 na dobę,  w 1996 na granicach miasta notowano 8145 samochodów (ul. Lubelska), 6996 (ul. Lwowska), ok. 4000 (ul. Szczebrzeska). W 2002 największy hałas notowano na "17-tce" - 73,2 decybela. Granicę 70db przekracza też hałas na ul. Sadowej, Partyzantów, Lwowskiej, Lipskiej, Legionów, Starowiejskiej i Wojska Polskiego. W 2012 ustawiono na ul. Hrubieszowskiej 500 m ekranów akustycznych. W 2022-23 powstało 4,8 km dwupasmowej drogi od strony wschodniej (ul. Szczebrzeska, Dzieci Zamojszczyzny, Al. 1 Maja, 2 mosty, 362 lampy).


 * W 2004 z powiatowych do gminnych zdegradowano ul. Dzieci Zamojszczyzny (od ul. Sadowej do ul. 1 Maja), ul. Maja (od ul. Dzieci Zamojszczyzny do ul. Lubelskiej), ul. Starowiejska (od al. WP do ul. Legionów), ul. Legionów (od ul. Starowiejskiej do al. Jana Pawła II) oraz al. Jana Pawła II (od ul. Legionów do ul. Lwowskiej).
Równocześnie podniesiono drogi do powiatowych - ul. Marszałka J. Piłsudskiego (od al. WP do ul. Peowiaków), ul. Peowiaków (od ul. J. Piłsudskiego do ul. Partyzantów, ul. Partyzantów (od ul. Peowiaków do ul. Orląt Lwowskich), ul. Prymasa Wyszyńskiego (od ul. Peowiaków do ul. Legionów), ul. Sadowa (od ul. Dzieci Zamojszczyzny do ul. J. Piłsudskiego).