Bulgarerne hadde siden 976 angrepet bysantinske områder og Basileios prøvde nå å så indre splid blant bulgarerne ved å slippe fri tsar Boris II av Bulgaria som satt i bysantinsk fangenskap. Knepet mislyktes imidlertid, så Basileios måtte dra mot Bulgaria med en hær på 30.000 mann. Han beleiret Sofia en tid, men måtte heve beleiringen og dra seg tilbake. Under tilbaketoget falt han i et bakhold og led et alvorlig tap ved Det trajanske pass i 986. Han flyktet med hjelp av sin væringgarde og forsøkte etterpå å få Samuels bror Aaron på sin side. Basileios fikk støtte fra Aaron ved å love ham sin søster Anna til hustru, men Aaron trakk seg da han oppdaget at den kvinnen som kom slett ikke var Anna. I 987 ble Aaron eliminert av sin bror Samuel. Selv om Basileios klarte å ta den titulære keiseren Roman av Bulgaria til fange i 991, måtte han likevel oppgi provinsen Moesia til bulgarerne.