Wełna ma swoje źródła w jeziorze Wierzbiczańskim, położonym kilka kilometrów na południowy wschód od Gniezna. Jest prawobrzeżnym dopływem Warty.
Na odcinku od źródeł do ujścia lewobrzeżnej Strugi w Gnieźnie (zwanej też Wełnianką, dawniej Srawą) Wełna przepływa w dolinie przez jeziora: Wierzbiczańskie, Jankowskie, Strzyżewskie i Piotrowskie, dalej przez jezioro Ławiczno i Biskupiec. Tutaj rzeka jest granicą między powiatem gnieźnieńskim i żnińskim. Dolina rozciąga się w kierunku północnym. Od jeziora Piotrowskiego dolina Wełny otoczona jest Lasami Królewskimi. Jezioro Jankowskie posiada ośrodek wypoczynkowy z bazą noclegową.