Toutefois, après l'ouverture du canal de Suez, les agressions étrangères le détournent des questions de politique interne. De 1875 à 1889, il défend les frontières éthiopiennes contre trois pays. Tout d'abord les Égyptiens, auxquels il inflige une lourde défaite en 1875-1876. Ensuite, les Italiens, installés à Metsewa depuis 1885, sont vaincus à la bataille de Dogali en 1887 par le ras Alula Engeda. Enfin, en partie à la suite d'un accord avec la Grande-Bretagne, Yohannes affronte les mahdistes soudanais. Il meurt de ses blessures le 10 mars 1889, au lendemain de la bataille de Metemma.