Dans sa jeunesse, il fit un pèlerinage en Terre sainte et combattit les Maures en Espagne. Quand il succéda à son père, celui-ci était en train d'organiser une ligue contre le royaume de France, en soutien à son gendre Édouard III, roi d'Angleterre, qui revendiquait le trône de France et s'apprêtait à déclencher la guerre de Cent Ans. La situation se compliquait pour le jeune comte, car l'empereurLouis IV de Bavière soutenait les revendications du roi d'Angleterre et lui prêta le concours de ses vassaux. Guillaume de Hainaut était à la fois vassal du roi de France et de l'empereur.
Il chercha à se ménager les deux suzerains mais les mécontenta tous les deux.
Finalement, il rejoint les forces anglaises, par rejet de la conduite de Philippe VI de Valois à son égard. Aidé par son oncle, Jean de Beaumont, il s'engagea alors pleinement dans la guerre et reçut le surnom de Hardi.
Le roi de France, par l'entremise de sa sœur qui était également la mère du comte, obtint une trêve avec le comte de Hainaut. Celui-ci en profita pour participer en 1344[1] à une des croisades baltes en Prusse avec l'Ordre Teutonique. À son retour, il fait le siège d'Utrecht pour remettre au pas Jean d'Arckel pour lequel il avait influencé l'élection au siège d'évêque d'Utrecht puis poursuivit son élan militaire pour soumettre en 1345[1] la Frise qui s'était révoltée. Mais il fut tué au cours d'un affrontement à Stavoren, à la Bataille de Warns[1]. Il fut enterré à l'abbaye de Bloemkamp.