Nasce al confine con la Toscana dalle pendici di Monte Castelvecchio, nel massiccio del Monte Fumaiolo (1126 metri s.l.m.) e alla sorgente il suo nome è Fosso Grosso. Dopo essere sceso nella zona di Verghereto, prende il nome di Savio e attraversa, ancora più torrente che fiume, i centri di Bagno di Romagna e di San Piero in Bagno, formando poi qualche chilometro più a valle il bacino artificiale di Quarto. Giunto a Borello, entra in pianura raggiungendo in breve la città di Cesena. Attraversato il centro urbano, il fiume scorre poi più lento con andamento meandriforme e pesantemente arginato, entrando in provincia di Ravenna dove sfiora i centri di Castiglione di Cervia e Castiglione di Ravenna. Presso l’omonima località di Savio (frazione sia di Cervia che di Ravenna), il fiume inizia a risentire dell’influenza del mare e compie un’ampia serie di meandri sino a giungere nei pressi di Cervia dove, tra le località di Lido di Classe e Lido di Savio, sfocia nel Mar Adriatico. Dalla fine del XX secolo la sua piccola sorgente è indicata da un monumento in ferro su cui spiccano l’immagine del lupo, simbolo di Montecoronaro, e gli anelli della caveja, simbolo della Romagna. Il fiume scorre quasi interamente nel territorio della provincia di Forlì Cesena, eccezion fatta per gli ultimi 15 chilometri, che si trovano in provincia di Ravenna.