Après la bataille des Saules, l'armée romaine, qui est en situation d'infériorité numérique, reprend l'initiative. Celle-ci met à profit le coup d'arrêt donné à l'avancée des Goths pour fortifier les cols qui traversent les monts Hémus et bloquer les cinq principales routes vers le Sud. Son objectif est d'empêcher l'avance de l'armée adverse dans une zone au nord des Balkans et dos au Danube avant l'hiver, afin de l'affaiblir grâce au manque de nourriture disponible dans la campagne dévastée[2].
À la fin de l'automne, l'armée gothique est cependant renforcée par une armée de Huns et d'Alains en quête de pillage. Cette nouvelle conduit l'armée romaine à se retirer des cols, qu'elle estime ne plus être en mesure de tenir face à des adversaires désormais trop supérieurs en nombre[2].
Au cours du repli de l'armée romaine, un détachement commandé par le tribun des scutaires Barzimer installe son camp sous les murs de Dibaltum, ville au carrefour de plusieurs routes au sud des monts Hémus. Ce détachement est constitué de cavaliers lourds et de fantassins, comprenant notamment une unité de Cornuti[2].
Le détachement est surpris en terrain découvert par les Goths[3]. Barzimer contre-attaque avec des soldats ayant pu s'armer et contient l'armée adverse pendant quelque temps en infligeant de lourdes pertes à l'armée gothique selon Ammien Marcellin[1]. Bien qu'ayant garanti ses flancs, il est cependant encerclé par une réserve de cavalerie gothique qui semble avoir anéanti l'armée romaine[3].
Selon l'historien Philippe Richardot, la tactique des Goths d'épuiser l'armée romaine dans un combat frontal d'infanterie avant de les envelopper par les ailes avec des cavaliers « est une répétition d'Andrinople à une échelle moindre »[3].
La ville de Dibaltum fut pillée après la victoire des Goths. Le repli de l'armée romaine au sud des monts Hémus laissa par la suite libre champ à l'armée gothique pour dévaster la Thrace, jusqu'à la province de Rhodope[2].