Řeka pramení na jihu Kolumbie v [[Centrální KordilleryKordillera (Kolumbie)|CentrálníchCentrální KordilleráchKordilleře]] a prvních 100 km má charakter horské řeky. Stéká ze svahů [[Andy|And]] na rozhraní mezi [[Centrální KordilleryKordillera (Kolumbie)|CentrálnímiCentrální]] a [[Východní KordilleryKordillera (Kolumbie)|VýchodnímiVýchodní KordilleramiKordillerou]] a do města [[Nape]] pokračuje severním směrem (640 km) v mezihorské [[propadlina|propadlině]] mezi těmito dvěma [[hřbet (geomorfologie)|hřbety]], která je široká 30 až 60 km. Níže se dolina řeky rozšiřuje a pod městem [[El Banco]] vtéká řeka do propadliny [[Momposino]] s množstvím [[bažina|bažin]] a [[jezero|jezer]]. Vytváří zde dvě [[říční rameno|ramena]]. Západní vodnatější rameno [[Loba (Magdalena)|Lobo]] přijímá levé přítoky ([[Cauca]], [[San Jorge]]) a východní rameno [[Mompos]] přijímá pravý přítok [[Sesar]] (na břehu tohoto říčního ramene leží mimo jiné i město [[Santa Cruz de Mompox]] figurující na seznamu [[světové dědictví|světového kulturního dědictví]] [[UNESCO]]). Do [[Karibské moře|Karibského moře]] se vlévá u významného kolumbijského [[přístav]]u [[Barranquilla]]. Magdalena je splavná pouze na svém dolním toku. Největším levostranným přítokem je řeka [[Cauca]].