A 12-es számú főút Pest vármegyében a Dunakanyarban található, mintegy 26,5 kilométer hosszú főút; Vácot köti össze Szobbal.
A 2-es főút út elágazásaként ered, annak 39+750-es kilométerszelvénye táján, Vác északi kapujánál. Többé-kevésbé a Duna vonalát követi, annak bal partján, a 11-es főúttal átellenes oldalon haladva. Érinti Verőcét, Kismarost, Nagymarost és Zebegényt, majd Szobon ér véget; onnan az 1201-es mellékút (Magyarország) vezet tovább az Ipoly-menti településeken át a 2-es főút parassapusztai határátkelőjéig.
Az 1890-es években a 2-es útszámot viselte. 1900-ban lett 20-as főút és Parassapusztáig vezetett. Az 1910-es években a szobi kompig rövidült. 1930-ban aszfaltréteget kapott.
1934-ben a kereskedelem- és közlekedésügyi miniszter 70 846/1934. számú rendelete a teljes hosszában harmadrendű főútnak nyilvánította, a mai 1201-es úttal együtt (tehát ismét a Vác-Szob-Letkés-Parassapuszta útvonalon húzódva) 113-as útszámozással; ugyanakkor a 12-es útszámozást a mai 2-es főút Rétság-Parassapuszta szakasz viselte.[1] A második világháború éveiben (az első és második bécsi döntést követő időszakban) a 12-es főút Rétságtól Palástig vezetett.
Egy dátum nélküli, feltehetőleg 1950 körül készült térkép szerint a teljes mai hosszában a 121-es útszámot viselte; a 12-es útszámozás abban az időszakban nem volt kiosztva.[2]
Legutóbb 1988-ban újították fel jelentősebb mértékben.