The movie goes back and forth between Dito Montiel's turbulent years growing up in Astoria, Queens, and present times, when he has returned home to see about his ailing father and the place he left behind so long ago.
In 1986, Dito (Shia LaBeouf) likes to hang around with his buddies: Antonio (Channing Tatum) and his brother Giuseppe (Adam Scarimbolo), and Nerf (Peter Anthony Tambakis); he also keeps a complicated relationship with Laurie (Melonie Diaz), a young girl from his neighborhood. Particularly Antonio likes to spend a lot of time at Dito's house, much to Dito's father, Monty's (Chazz Palminteri's) pleasure and his mother Flori's (Dianne Wiest's) dismay.
Later, Dito meets a Scottish boy named Mike (Martin Compston), who convinces him to go to California and form a rock band together. In order to achieve it, they need money, so they both start working with Frank (Anthony DeSando), a gay man from the neighborhood, helping him walk dogs.
Everything reaches a boiling point when:
20 years later, Dito, now an adult (Robert Downey Jr.), returns to Astoria and slowly reconnects with everyone who was part of his life: Nerf (Scott Michael Campbell), who first called him about his father; Laurie (Rosario Dawson), who now has a kid of her own; his mother; his father, whom he is forced to make ammends with and wants to take to a hospital; and, of course, Antonio (Eric Roberts), who is still serving a life prison sentence, but now older and visibly wiser.
The film ends with Dito and Antonio joyfully reconnecting and about to have a conversation.