Suo cugino Fiorenzo V d'Olanda aveva duramente combattuto contro i fiamminghi per il possesso della Zelanda e per questo aveva cercato aiuto presso i francesi. Questi ultimi sconfissero i fiamminghi nel 1300 e nel 1301 riducendo al silenzio anche i ribelli zelandesi, sempre nel 1301 il fratello di Giovanni, Gwijde (1253circa-23 maggio 1317), divenne Vescovo di Utrecht, tutti i principali nemici sembravano sconfitti.&lt;br&gt;Un anno dopo tuttavia i fiamminghi si rivoltarono e vinsero contro i francesi alla Battaglia degli speroni d'oro, a Courtrai, in cui perse la vita, Giovanni, il suo figlio primogenito; i patrioti fiamminghi attaccarono l'Hainaut e la Zelanda aiutati dagli abitanti insoddisfatti e Gwijde di Namur (1272 circa - 13 ottobre 1311) sconfisse l'altro suo figlio Guglielmo I di Hainaut in una battaglia che si svolse sull'isola di Schouwen-Duiveland. Il fratello di Giovanni, Gwijde, venne preso prigioniero e Gwijde di Namur insieme a Giovanni II di Brabante conquistò buona parte dell'Utrtecht e della Zelanda. Gwijde di Namur venne infine sconfitto nel 1304 dalle flotte olandesi e francesi, al comando di Ranieri I di Monaco, nella battaglia navale di Zierikzee (questi avvenimenti sono raccontati dalla "Chronologia Johannes de Beke") e Giovanni riconquistò il proprio potere di cui fu privato con il sopraggiungere della morte che lo colse il 22 agosto di quell'anno, appena dieci giorni dopo la vittoria; secondo la "Chronologia Johannes de Beke", Giovanni morì il 12 settembre a Valenciennes, dove fu sepolto. Alla morte di Giovanni come conte di Hainaut, di Olanda e di Zelanda, gli succedette il figlio Guglielmo.