Il ramo principale del Serchio scende dalle pendici del monte Sillano (m. 1.
864) e si riunisce al ramo denominato "Serchio di Gramolazzo" presso il comune di Piazza al Serchio.
Percorre la Garfagnana da nord a sud, da Sillano fino a Gallicano, per poi
continuare nella Media Valle costeggiando il territorio del comune di Barga e Bagni di Lucca. Attraversa quello di Borgo a Mozzano. Più volte sbarrato artificialmente, in questo tratto riceve da destra l'Edron, il Tùrrite Secca, il Tùrrite di Gallicano, il Turrite Cava, il Pedogna e la Celetra; da sinistra la Covezza, il Fiume, il Castiglione, il Sillico, il Ceserana, la Corsonna, la Loppora, l'Ania, il Fegana e la Lima, il suo principale affluente che nasce dal Passo dell'Abetone raccogliendo le acque dell'Appennino Pistoiese nord occidentale con un volume medio di oltre 20 metri cubi al secondo.
La foce del Serchio a Marina di Vecchiano
Giunto nella piana di Lucca - dopo aver attraversato o lambito le zone del morianese e del capannorese - dove raccoglie anche le acque del torrente Freddana, volge a ovest dove, attraverso la stretta di Ripafratta, entra in provincia di Pisa scorrendo nei comuni di San Giuliano Terme e Vecchiano; sulla sponda sinistra, a dieci chilometri dalla foce lambisce il paese di Pontasserchio, l'unico insieme a Piazza al Serchio a prendere il nome dal fiume, sovrastato dall'omonimo ponte a tre arcate che lo collega con Vecchiano. Poco prima di Pontasserchio in località Rigoli, dalla sponda sinistra, riceve le acque del torrente-canale Ozzeri. Il Serchio termina il suo corso gettandosi nelle acque liguri-tirreniche, nella zona del Parco di San Rossore, pochi chilometri a nord di Pisa, fra la sponda destra di Marina di Vecchiano e la sponda sinistra sangiulianese.