Il fiume nasce nei pressi del colle Tereo, rilievo dei monti Iblei, a poca distanza dal centro abitato di Buccheri, nel libero consorzio comunale di Siracusa. Durante il suo lungo percorso attraversa anche comuni ricadenti nella città metropolitana di Catania, per poi rientare nel territorio siracusano e sfociare nel mar Ionio, attraversando per ultima la località di Villaggio San Leonardo, che proprio dal fiume ha preso il nome; al confine tra le aree comunali di Augusta e Carlentini, 38 km a nord dalla città di Siracusa[1].
Il San Leonardo da Buccheri si incassa quasi subito in una profonda gola detta Gole della Stretta, ricevendo l'acqua da diversi affluenti, tra i quali figurano il Reina, che nasce nel comune di Vizzini e confluisce presso Lentini, e l'Ippolito, che nascendo nel comune di Militello in Val di Catania si getta nel San Leonardo anch'esso nei pressi di Lentini[2].