1277 wurde er mit Margarete, einer jüngeren Tochter des englischen Königs Eduard I. und dessen Frau Eleonore von Kastilien verlobt. Er heiratete sie am 9. Juli 1290 in Westminster Abbey. Er folgte seinem Vater 1294 als Herzog und sah sich Aufständen gegenüber, deren er mit Hilfe seines Onkels Gottfried von Aerschot Herr wurde. Er verbündete sich mit dem König von England, Guido von Flandern und anderen Adligen gegen Philipp IV. von Frankreich, allerdings verzögerte sich der Angriff so lange, bis das Bündnis sich im Jahr 1300 selbst auflöste. Später kämpfte er gegen König Albrecht von Habsburg, der seine Autorität in der Region wiederherstellen wollte, und musste sich schließlich unterwerfen. Im Jahr 1303 kämpfte er gegen Johann II. von Holland, um sein Gebiet in Richtung der Scheldemündung zu erweitern, scheiterte aber auch hier.
Auf dem Sterbebett unterzeichnete er die Charta von Kortenberg, die den Rang einer Verfassung Brabants bekam.
Nachkommen
Johann II. hatte mit seiner Frau Margarete mehrere Kinder, darunter Johann III. (1300–1355), der sein Erbe wurde.
Darüber hinaus hatte Johann II. eine Reihe von unehelichen Kindern, darunter Johann Cordeken, welcher um 1312 die Herrschaft Glymes in Brabant erhielt und somit das Haus Glymes begründete.