D'origine réunionnaise, Guillaume Hoarau débute le football à la Jeunesse sportive Saint-Pierroise. Il se fait peu à peu connaître sur son île natale en marquant de nombreux buts dans les compétitions régionales. Bénéficiant d'un partenariat avec la Jeunesse sportive Saint-Pierroise, le Havre AC repère Guillaume Hoarau et le fait signer en janvier 2004. Quelques années auparavant, ce partenariat avait déjà permis au club normand de recruter Florent Sinama-Pongolle.
Peinant à s'adapter à un climat plus rigoureux qu'à La Réunion, victime également d'un forte concurrence au sein de l'attaque havraise, Guillaume Hoarau vit alors des premiers mois difficiles en Normandie. En manque de temps de jeu, il est alors prêté à Gueugnon au cours de la saison 2006-2007. Ses bonnes prestations contribuent alors grandement au maintien en ligue 2 du club bourguignon et lui procurent une notoriété grandissante dans le milieu du football français.
De retour en Normandie, Guillaume Hoarau se retrouve titulaire de l'attaque havraise pour la saison 2007-2008 et entame alors une impressionnante série de buts. Avec 28 buts, il termine meilleur buteur du championnat et contribue grandement à la montée de son club en Ligue 1. Ses excellentes performances suscitent également la convoitise de nombreux clubs français (Paris Saint-Germain et Olympique de Marseille) et étrangers (Arsenal FC).
Le 18 janvier 2008, il signe avec le Paris Saint-Germain un contrat de 4 ans et demi. Désirant terminer la saison 2007-2008 en Normandie, Guillaume Hoarau obtient d'être aussitôt prêté au Havre. Comme Guillaume Hoarau arrivait en fin de contrat à l'issue de la saison de 2007-2008, le club normand ne pouvait prétendre à aucune indemnité de transfert. Guillaume Hoarau a alors choisi de reverser à son club l'indemnité de transfert versée par le Paris Saint-Germain, d'un montant de l'ordre de 500 000 ¤.
Le 2 juillet 2008, Guillaume Hoarau reçoit son numéro 9 fétiche qu'il portait déjà au Havre et qu'il porte désormais au Paris Saint-Germain.
Il inscrit son premier but sous ses nouvelles couleurs le 12 juillet 2008 contre Châteauroux en amical et son deuxième but quelques jours plus tard face à Boulogne, également en amical.
Le 16 août, lors du match de la 2e journée à domicile face à Bordeaux, il marque l'unique but de la rencontre, le premier de sa carrière en Ligue 1, offrant ainsi à son nouveau club la première victoire de la saison. Il marque un doublé lors de son premier OM-PSG (victoire de Paris 4 buts à 2 face à l'Olympique de Marseille) devenant, au soir de cette rencontre, meilleur buteur de Ligue 1 ex-æquo avec le lyonnais Karim Benzema (6 buts).
Le 7 décembre, il inscrit son troisième doublé de la saison lors de la victoire 3-1 du Paris SG face au MUC 72 et devient au soir de la 17e journée, meilleur buteur de Ligue 1 avec 10 réalisations.
Ses performances avec le club parisien lui valent notamment d'être élu meilleur joueur de ligue 1 d'octobre1.
Le PSG lui permet également de connaître sa première aventure en Coupe d'Europe grâce à la Coupe de l'UEFA. Le 18 février 2009, il inscrit ses deux premiers buts dans cette compétition en 16e de finale aller contre le VfL Wolfsburg (victoire du PSG 2-0).
Il est convoqué pour la première fois en équipe de France de football, le 23 mars 2009 suite au forfait de Nicolas Anelka.