Cuando Jimmy Markum (Sean Penn), Dave Boyle (Tim Robbins) y Sean Devine (Kevin Bacon) eran unos pequeños que medraban juntos en un peligroso distrito obrero de la ciudad de Boston, pasaban los días jugando al béisbol en la calle. Mas, un día, a Dave le ocurrió algo que marcó por siempre su vida y las de sus amigos. 25 años después, otra desgracia los vuelve a unir: el homicidio de Katie (Emmy Rossum), la hija de diecinueve años de Jimmy. A Sean, que es policía, le asignan el caso; mas asimismo debe estar muy pendiente de Jimmy por el hecho de que, en su desesperación, está procurando tomarse la justicia por su mano.