Die Urff entspringt im Kellerwald. Ihre Quelle liegt westsüdwestlich des Bad Wildunger Stadtteils Hundsdorf und ostnordöstlich des Hainaer Ortsteils Löhlbach auf dem Übergangsbereich zwischen Großer Aschkoppe (639,8 m) im Südosten, Alter Koppe (591,4 m) im Südwesten und Wölftekopf (567,1 m) im Nordnordosten. Wenige Meter nordwestlich vorbei an der oberhalb der Ritterwiese auf etwa 564 m ü. NHN liegenden Quelle führt zwischen Löhlbach und Hundsdorf die Bundesstraße 253.
Die Urff, die die Große Aschkoppe an deren Nord-, Nordost- und Ostflanke umfließt, verläuft durch den waldreichen Naturpark Kellerwald-Edersee in anfangs östlicher Richtung nach und durch Hundsdorf, wo sie nach Südosten in Richtung Armsfeld abknickt. Unterhalb von Armsfeld, südlich des Auenbergs (610,7 m), wendet sich der Bach nach Osten und fließt vorbei an dem Weiler Fischbach und durch Bergfreiheit, die Burgruine Löwenstein (341,2 m) passierend, und durch Oberurff-Schiffelborn nach Niederurff.
Die Mündung der Urff in die Schwalm befindet sich im Löwensteiner Grund unterhalb und östlich von Niederurff auf etwa 193,5 m Höhe; nordöstlich gegenüber erhebt sich die Altenburg (432,7 m).