Em 1185, os irmãos Teodoro e João Asen se apresentaram ao imperador bizantinoIsaac II Ângelo em Cípsela para requisitar uma pronoia, mas o pedido dos dois foi negado e João Asen ainda recebeu um tapa no rosto durante a discussão. Insultados, os irmãos voltaram para a Mésia e, aproveitando-se do descontentamento geral por causa dos altos impostos cobrados pelo imperador bizantino para financiar suas guerras contra Guilherme II da Sicília e para celebrar seu casamento com Margarida da Hungria, iniciaram uma revolta contra o governo bizantino.
Embora tenha tido um papel mais ativo nas operações militares contra os bizantinos, o irmão mais velho de João, Teodoro, foi proclamado imperador dos búlgaros com o nome de Pedro IV (Petar). Eles não conseguiram de imediato capturar Preslav, a capital histórica da Bulgária, e, por isso, os revoltosos fundaram uma nova em Tarnovo, o provável centro da revolta. Entre 1185 e 1186, os búlgaros tomaram a maior parte da região da Mésia e atravessaram a cordilheira dos Bálcãs para atacar a Trácia bizantina.
No verão de 1186, o imperador bizantinoIsaac II Ângelo marchou com um grande exército e invadiu novamente a Mésia. Enquanto Pedro se mostrou pronto para negociar, João Asen fugiu atravessando o Danúbio, alistou uma enorme força de cumanos e voltou para liberar o irmão. Isaac II já havia voltado para Constantinopla contente com as promessas de Pedro IV de obediência. Com seu novo exército, João Asen voltou a atacar a Trácia, evitando habilmente entrar em combate com o exército bizantino, muito superior.
Uma nova expedição liderada por Isaac II seguiu para Sófia em 1186, sem resultados duradouros sobre o território reconquistado pelos búlgaros. O imperador atacou novamente no ano seguinte, desta vez atacando Tarnovo e cercando Lovech por três meses, novamente sem sucesso. Durante o cerco, os bizantinos capturaram a esposa de João Asen, que foi trocada pelo irmão mais novo dele, Joanitzes, como refém depois de uma trégua. Mas nenhum dos dois lados tinha intenção de manter a paz. Quando a Terceira Cruzada, liderada por Frederico I, passou pelo território búlgaro em direção a Constantinopla, representantes de Pedro IV e João Asen se aproximaram com ofertas de apoio militar contra o hostil Isaac II em Nísibis e novamente em Adrianópolis.
Depois da passagem dos cruzados, Isaac decidiu dar um basta na ameaça búlgara. A expedição foi planejada em grande escala e seguiu diretamente para Tarnovo para cercar a cidade. Nesta época, Pedro IV já havia coroado João Asen I como coimperador (1189) e, sem abdicar, havia se retirado para Preslav. A cargo da defesa da capital, João Asen incitou o imperador bizantino a se retirar apressadamente espalhando rumores sobre a chegada iminente de um grande exército cumano para libertar a cidade. Os bizantinos foram então emboscados por João Asen nos passos de montanha da cordilheira dos Bálcãs e Isaac II quase não conseguiu escapar com vida da Batalha de Tryavna (1190).
A sorte agora estava definitivamente ao lado dos búlgaros, que capturaram as regiões de Sófia e Nísibis em 1191, Belgrado em 1195, Melnik e Prosek em 1196, enquanto realizavam ataques constantes ao território bizantino, alcançando a cidade de Serres ao sul, onde os bizantinos foram novamente derrotados. Contudo, quando voltava de um desses ataques, João Asen I foi assassinado por Ibanco, um de seus comandantes militares, que havia sido ameaçado por ter tido um caso amoroso com a irmã da esposa do imperador búlgaro. O assassino tentou assumir o controle de Tarnovo e negociar com Constantinopla, para onde ele logo foi obrigado a fugir.
João Asen I se casou primeiro com uma tal Maria, enterrada em Cherven, e, em seguida, com Helena (rebatizada de Eugênia), de procedência desconhecida. Ela é por vezes identificada como sendo a filha de Estêvão Nêmania da Sérvia, o que é questionável e provocaria uma série de impedimentos para o casamento entre seus descendentes. Com ela teve pelo menos dois filhos:
João Asen II, imperador da Bulgária entre 1218 e 1241.
Alexandre (Aleksandăr), sebastocrator, morto depois de 1232; Alexandre teve um filho chamado Colomano Asen II (Kaliman), imperador da Bulgária em 1256.