京都府南部の大阪府境に位置する。京都市伏見区、久世郡久御山町、城陽市、京田辺市、乙訓郡大山崎町、大阪府枚方市、三島郡島本町に境を接するが、島本町との間には淀川があり、橋がないため直接の往来はできない。
従来は大山崎町との間にも橋がなかったが、2003年に天王山大橋(国道478号)が開通して名実ともに隣町となった。
面積24.37平方km、人口約7万の都市。
京都と大阪の中間に位置し、水陸の交通の要衝として、また男山(標高142m)に鎮座する石清水八幡宮の門前町として古くから栄えた。
戦後は京都・大阪に対するベッドタウンとして発展し、男山山麓には大規模な住宅団地も造成されている。
「八幡」の市名は、市内にある石清水八幡宮に由来する。
かつて福岡県に八幡市(やはたし)があり、滋賀県八幡町が1954年に市制を施行する際に重複を避けるため市名を近江八幡市とした例もあるが、福岡県八幡市は1963年に合併により、現在の北九州市八幡西区・八幡東区になったため、1977年に当市が市制施行する際には八幡市を名乗ることに支障がなかった。
*1:一般には東海道は京都までの「五十三次」だが、正式には大阪まで延長され「五十七次」になっていた。