Река Бели Лом води началото си от извор-чешма "Даачешме" (на 404 м н.в.), разположена на 500 м западно от село Островче, Община Разград в Разградските височини. До язовир "Бели Лом" при село Крояч тече на изток-югоизток, а след изтичането от язовира рязко завива на северозапад. Преминава през центъра на град Разград и в това направление достига до град Сеново. От извора до село Дряновец протича в широка долина, а след селото долината на реката става каньоновидна със скалисти склонове, изградени от апстки варовици и със стотици меандри. На 3,2 км източно от село Иваново, на 47 м н.в. се слива с идващата отляво река Черни Лом и двете заедно дават началото на река Русенски Лом.
Подхранването на Бели Лом е предимно дъждовно-снежно, с ясно изразен пролетен — март-юни максимум и лятно-есенен — юли-октомври минимум. По време на пролетното пълноводие протича около 60% от годишния отток. Реката е с една от най-високите стойности на мътност в България. Много често Бели Лом е причинявал наводнения по долината си, като най-голямото е през 1947 г.