Billy « Le Grand » Espoir (Jake Gyllenhaal) est un boxeur professionnel invaincu vivant dans la banlieue de New York avec sa femme Maureen (Rachel McAdams) et leur fille Leila (Oona Laurence). Lors de son match contre Darius Jones (Cedric D. Jones) au Madison Square Garden, Maureen a peur alors que Billy prend plusieurs coups horribles au visage, ce qui lui fait saigner abondamment de l’œil gauche. Billy utilise ensuite un style de combat brutal et rapide contre Jones, lui permettant de remporter le match par ko et de conserver le titre incontesté des Poids légers WBA / IBF / WBC / WBO. Malgré la victoire, il souffre de blessures désagréables et de saignements continus.
Ensuite, alors que la presse entoure Billy, un jeune boxeur arriviste, Miguel « Magic » Escobar (Miguel Gomez), entre et demande à Billy de le combattre sur le ring, affirmant que Billy n’a jamais été frappé par un vrai homme. En rentrant chez elle, Maureen exprime ses craintes pour la sécurité de Billy et l’exhorte à démissionner tant qu’il est en avance, sinon il deviendra alcoolique reclus dans deux ans. Lors d’une fête à la maison de l’Espoir, Maureen parle au manager de Billy, Jordan Mains (50 Cent), et n’est pas d’accord avec son plan pour que Billy signe un contrat de deux ans avec HBO pour trois autres combats.
Billy et Maureen se rendent à un bal de collecte de fonds où Billy prononce un discours, reconnaissant Maureen, Leila, Jordan et ses amis Gabe, Jon Jon, Eli et Mikey. Miguel est également présent, et alors que Billy s’en va, Miguel le pousse en insultant sexuellement Maureen et en disant qu’il lui enlèvera ses titres. Maureen dit à Billy de laisser tomber mais la colère de Billy prend le dessus sur lui, ce qui conduit à une bagarre. Un des amis de Billy, Gabe (Malcom Mays) sort un pistolet, mais un coup de feu retentit sans qu’il appuie sur la gâchette. Billy regarde par-dessus et voit que Maureen a été abattue. Miguel, voyant que c’est son frère Hector qui a tiré le coup de feu, cache le pistolet alors qu’Hector s’enfuit tandis que Maureen meurt dans les bras de Billy.
Billy commence à abuser de l’alcool et de la drogue tout en recherchant obsessionnellement Hector. L’ami de Billy, Jon Jon (Beau Knapp), va essayer de l’arrêter, mais il est menacé par lui sous la menace d’une arme et blâmé pour la mort de Maureen. Billy finit par avoir un pourboire sur les allées et venues d’Hector, mais ne trouve que la femme toxicomane d’Hector, Maria, et part après avoir appris qu’Hector est père. Billy rencontre Jordan, qui lui suggère de vendre la maison pour résoudre ses problèmes financiers. Jordan livre alors à Billy un combat contre Kalil Turay. Pendant le combat, Billy se fait tellement tabasser que son coin jette l’éponge, mettant fin au combat. Aveuglé par les dégâts causés par des tirs à la tête, Billy frappe accidentellement l’arbitre au visage. Billy est suspendu pour un an, ne lui laissant aucun revenu et le paiement de dommages et intérêts à l’arbitre. En outre, les réseaux le poursuivent pour rupture de contrat, le laissant endetté et sa maison et ses biens étant repris. Avec Billy hors de combat, son entraîneur de longue date Eli Frost et Jordan l’abandonnent pour travailler avec Miguel.
Billy continue de devenir incontrôlable et finit par courir sa voiture dans l’arbre devant chez lui une nuit. L’alarme réveille Leila, et elle descend pour trouver un Billy en sang couché sur le sol, puis appelle le 911. Billy se réveille à l’hôpital pour se faire dire que Leila est confiée à l’agente des Services de protection de l’enfance Angela Rivera (Naomi Harris) car il est jugé inapte à s’occuper d’elle en raison de son comportement imprudent. N’ayant plus nulle part où aller, un Jon indulgent conduit Billy au gymnase Wills où il rencontre l’ancien boxeur Tick Wills (Forest Whitaker), qui est aveugle d’un œil après que son dernier combat l’a blessé. Billy veut que Tick le remette sur pied, mais Tic est au courant de ses problèmes d’alcool et de consommation de drogues et hésite à le former. Il propose à Billy un travail de concierge, mais Billy refuse.
Billy se rend au bâtiment des services à l’enfance et rencontre Angela. Il admet qu’il est un gâchis mais il veut toujours voir Leila. Cependant, Leila lui reproche d’avoir causé leurs deux problèmes et refuse de le voir. Billy retourne au gymnase et accepte le travail de concierge. Alors qu’il y travaille, il se lie d’amitié avec un garçon nommé Hoppy (Skylan Brooks), qui est également un boxeur en herbe. Il apprend que le père de Hoppy abuse de sa mère, qu’il rapporte à Tick, avec qui il continue de se lier. Alors qu’il continue de faire amende honorable dans sa vie, Billy essaie de rendre visite à Leila, qui est toujours réticente à le voir, mais sa persévérance la gagne. Billy rend à nouveau visite à Leila pour lui parler de son prochain combat d’exposition. Comme elle a reçu l’ordre de ne pas assister à ses combats par le juge, elle le frappe à plusieurs reprises, lui reprochant la mort de Maureen. Après avoir participé et remporté un match de charité contre le jeune boxeur Keith « Buzzsaw » Brady, Billy reçoit la visite de Jordan, qui gère maintenant Miguel qui a récemment remporté le Championnat WBC des Poids légers aux mains de Khalil Turay. Jordan veut réserver un combat entre les deux hommes dans les six semaines, sachant que Billy n’aura pas assez de temps pour s’entraîner. Billy pense qu’il peut faire un retour et veut que Tick le forme, mais Tic refuse, croyant que Billy veut juste se venger.
Billy retourne au gymnase pour trouver Tick frappant furieusement un sac de boxe, après avoir découvert que Hoppy est mort après avoir tenté de défendre sa mère contre son père, qui lui a ensuite tiré dessus. Se lamentant de ne pas avoir pu sauver Hoppy, Tick se lève et aide Billy à s’entraîner et à se remettre en forme pour le combat à venir. Constatant ses efforts pour renverser sa vie, le juge accorde à Billy la garde de Leila et elle retourne avec lui. En visitant la tombe de Maureen à la demande de Leila, Billy dit à Leila qu’il va se battre à nouveau, et exauce son souhait de la laisser le voir se battre.
La nuit du combat arrive, des milliers de personnes sont prêtes à assister au retour de Billy. Angela amène Leila dans le vestiaire où ils regardent le combat à la télévision. Le combat commence, et Miguel prend le dessus, renversant Billy deux fois. Les deux combattants échangent des coups de poing furieux, allant de pair à chaque tour. Miguel se met alors dans la tête de Billy en insultant Maureen. Cela provoque une perte de concentration de Billy et dans un accès de rage, le fouette et arrête presque le combat. Tick dit alors à Billy de ne pas laisser Miguel le contrôler, car sa femme et sa fille le surveillent. Billy entre dans le dernier tour, ayant enfin appris à contrôler sa colère, et commence à prendre le dessus sur Miguel. Les deux combattants continuent de se fatiguer, avant que dans les dernières secondes du dernier round, Billy bloque un jab de Miguel, atterrit un coup au visage avant de tourner au sud et d’atterrir un uppercut furieux, provoquant l’écrasement de Miguel au sol. La foule se déchaîne et l’équipe court sur le ring pour célébrer avec Billy.
Après une décision partagée où les premiers tours vont à Miguel, les juges annoncent Billy comme nouveau champion. Billy s’effondre alors dans le coin du ring, remerciant Maureen et étant enfin prêt à être un père engagé pour Leila. Tick le soulève alors sur leurs épaules alors qu’il ferme les yeux en larmes et sourit. Après le combat, Leila rencontre Billy dans le vestiaire, où ils s’embrassent pour la première fois depuis la mort de Maureen. Billy dit que Maureen serait fière d’elle et elle lui dit qu’elle l’aime alors qu’ils continuent à s’embrasser.