It's 1995. Jimmy "B-Rabbit" Smith Jr. (Eminem) is a young and frustrated blue-collar factory worker. He has moved back north of 8 Mile to the run-down trailer home in Warren, belonging to his alcoholic mother, Stephanie (Kim Basinger), his younger sister, Lily (Chloe Greenfield) and Stephanie's abusive live-in boyfriend, Greg (Michael Shannon).
Jimmy is focused on getting his rap career started. He seems to have stalled in progress; choking in the middle of a rap battle and getting booed off stage. Prior to the events of the film, Jimmy had broken up with his pregnant girlfriend, Janeane (Taryn Manning). During the film, Jimmy begins a new relationship with Alex (Brittany Murphy), who he meets at the factory he works in.
Jimmy begins to realise that his life has remained pretty much the same since he graduated from high school.At first, he considers himself to be a victim of circumstances and blames others for his problems. Over time, Jimmy begins to take responsibility for his life and how much control he has over it. He questions whether his group of friends, including "Future" (Mekhi Phifer), are holding themselves back from moving onto bigger things. Jimmy appears to decide that he'll put his dream of a music career on hold so he can provide for his mother and sister.
The rap battle acts as a final conflict between Jimmy and a rap group known as "The Leaders of the Free World." They have been harrassing Jimmy throughout the film. This starts with the deterioation of Jimmy's friendship with "Wink" (Eugene Byrd). Wink pesters Jimmy throughout the film, promising him that he has links to help them "get big" and he can hook Jimmy up with influential people. When Jimmy shows up at the studio, he finds Wink having sex with Alex. Enraged, Jimmy beats up Wink as Alex tries to break it up. This makes Wink team up with the "The Free World" and beats Jimmy up as his little sister, Lily watches inside the trailer. Jimmy is left with a black eye that is present at the final rap battle.
Jimmy's boss is impressed by his new found responsibility, giving Jimmy the extra shifts he'd asked for at the beginning. A late night shift conflicts with a rap battle which Jimmy initially doesn't want to go to. A visit from Alex changes his mind. Paul (Craig Chandler), a gay co-worker who Jimmy stuck up for, agress to cover his shift.
Throughout the film, Jimmy's friends constantly refer to him as an incredible rapper but we only see snippets of skills. The tournament consists of three rounds where Jimmy has to rap against a member of the "Free World." Jimmy wins two of the rounds with better rapping in each round.
In the last round, Jimmy is pitched against "Papa Doc" (Anthony Mackie), the tournament's most feared rapper. Jimmy is aware that Papa Doc knows his weak points so Jimmy addresses them in his freestyle. He uses his 'white trash' background and the various inflictions the "Free World" have put upon him. He also acknowledges the difficult life he's had as a springboard to reveal the truth about Papa Doc; how he passes himself off as a thug but has actually come from a priviledged background.
Jimmy makes a reference to the beat the DJ is playing (Shook Ones Part II), calling Papa Doc a 'halfway crook' which sends the crowd crazy. Papa Doc is left speechless, drops the mic and backs down. As Jimmy leaves the venue, Future suggests that he stay and celebrate his victory; offering him the position that would allow him to host battles at the Shelter. Jimmy refuses, stating that he needs to get back to work and do things his own way. Future accepts this and respects it. The final shot of the film sees Jimmy walking away from the shelter, looking more confident about his future.