Elven har sitt utspring i Mecklenburg-Vorpommern mellom innsjøen Müritz og byen Neubrandenburg. Elven renner inn i Brandenburg nær Fürstenberg og i den øvre delen av elven, mellom Berlin og byen Brandenburg, danner elven flere innsjøer. Den største sideelven til Havel er Spree som renner ut i Havel i Spandau, en vestlig bydel i Berlin, og fører med seg mer vann enn Havel selv gjør. Den nest største sideelven er Rhin, som munner ut i Havel i to grener som er et stykke fra hverandre.