Река Тополница извира от 1 572 м н.в. под името Ширенейска река в източното подножие на връх Буная (1 572 м) в Същинска Средна гора. Първите 7 км тече на изток в дълбока и гориста долина. След това завива на север, пресича Копривщенската котловина и на протежение от 12 км "разсича" Същинска Средна гора чрез дълбок пролом. При гара Копривщица завива на запад-югозапад и навлиза в Златишко-Пирдопската котловина, като тече по южната ѝ част. След село Петрич, Община Златица завива на юг и протича в дълбока проломна долина между Същинска Средна гора на изток и Ихтиманска Средна гора на запад. След изтичането си от язовир "Тополница" завива на югоизток, долината ѝ малко се разширява, но запазва проломния си характер. При село Калугерово навлиза в Горнотракийската низина, като тук течението ѝ е бавно и спокойно и коритото ѝ е коригирано с водозащитни диги. Влива се отляво в река Марица на 205 m н.в., на 1 km западно от град Пазарджик.
В Златишко-Пирдопската котловина и Горнотракийската низина водите на реката се използват за напояване, като за целта са изградени язовирите "Душанци", "Жеков вир" и "Тополница". В основите на преградните стени на двата от тях "Душанци" и "Тополница" има ВЕЦ-ове.