Calvin (Ice Cube) expresses his love for the city of Chicago for being his hometown and the place where he has been running his barbershop business and supporting his family. Unfortunately, the city has been plagued by gang violence and criminal activity as of late, and tensions have begun to rise, especially in Calvin's neighborhood.
Eddie (Cedric The Entertainer) comes running into the barbershop frightened because he claims to have made a comment at some thugs over their pants sagging. Eddie gets Calvin panicked as the door starts banging, but it's really just a delivery man bringing Eddie his breakfast, to Calvin's annoyance.
The barbershop is now co-run by Calvin and Angie (Regina Hall), allowing a separate section for women to work, with new recruits Bree (Margot Bingham) and Draya (Nicki Minaj). On the mens side are Jerrod (Lamorne Morris), Raja (Utkarsh Ambudkar), and Rashad (Common), new husband of Terri (Eve). The shop also has a boy named Anthony Clark (Torion Sellers) working there while he puts his focus on school. Rashad's son Kenny (Diallo Thompson) has been hanging out with Calvin's son Jalen (Michael Rainey, Jr.). The boys come in one morning before school, and Calvin catches Kenny trying to swipe two Snickers bars.
Outside, some Crips pull up and try to steal the boys' shoes, until the Bloods of that area come outside and tell the other gang to step off. The Bloods leader, Yummy (Tyga) is friendly with the boys based on the assumption that they are willing to join his gang.
The men and women of the barbershop converse on the subject of modern women, with Bree arguing that good women are always losing to the "hoes" and that men complain about women having fake body parts but still lust after those same women. Another topic of discussion is racism against black people, which Raja disagrees with on the basis that the country has a black president, to which Rashad counters that Obama has done nothing when recent cases involving murdered black youths have been all over the media. Still, Raja insists that there has never been a better time to be a black person.
Calvin has recently been talking to a smooth-talking businessman called One-Stop (JB Smoove) about taking the barbershop business from the south side to the north side to avoid the dangers in the streets. Only Calvin's wife Jennifer (Jazsmin Lewis) is aware of this, and she's only considering for Jalen's sake.
A regular client, Jay (Renell Gibbs), enters to be taken care of by Draya, but another man, Marquis (Jamal Woolard), shows up, clearly having beef with Jay. The two men nearly fight in the shop until Calvin and Rashad intervene.
Jalen and Kenny get in trouble at school after being involved in a fight with the gang from earlier that morning. Jalen is unharmed but Kenny has a bruise under his eye. This pushes Calvin to consider putting his son in Catholic school, and also makes him trust Kenny even less, to the point where he confronts Rashad and tells him their sons shouldn't be hanging out so much. It gets more serious when Jennifer goes through her son's drawers and finds gang paraphernalia.
With all the trouble going on in the neighborhood, Jimmy James (Sean Patrick Thomas) announces an enclosure with heavy police presence. The members of the shop band together to organize a forum that night with the community to set up a ceasefire, along with free haircuts to anyone that passes by.
Outside the shop, Terri becomes suspicious of Draya for being flirty and close to Rashad. He offers to take Draya home one evening on his way to pick up his daughter. Draya invites Rashad up to her apartment to "talk", but Rashad knows what's up, even if she denies it being sexual.
The barbershop gang sets up for Jay and Marquis to arrive at the same time so they can get involved in the ceasefire. After a bit of tension and another near-altercation, the men agree to the ceasefire out of respect for Calvin.
Over the weekend, the ceasefire commences. Jerrod and Raja put the word out on Twitter for people to come to the barbershop. A large number of people show up, and things appear to be going smoothly.
Rashad goes in the back to grab some items, and Draya goes to do the same. He apologizes for misinterpreting her motives from the other night. She forgives him and then tries to kiss him. Terri then shows up with JD (Anthony Anderson)(who "now runs a food truck business) and heads into the back. She catches Rashad and Draya in the closet at the worst possible moment, leading her to believe they were hooking up. Terri storms out and Rashad follows to try and explain himself, but she won't have any of it.
As the shop celebrates a day of peace, Officer Terrence (Timon Kyle Durett) shows up to bring some bad news. Anthony was shot to death on his way home from the library. Devastated, Calvin gives up on the ceasefire. The tension leads to word about him moving the shop to the north side get out, which upsets Angie the most since Calvin kept it from her.
Calvin goes to the bar, with Eddie joining him after. He tries to assure Calvin that although Anthony's death was a terrible loss, they still may have prevented even more lives from being taken. This inspires him to return to the shop and apologize, while also putting the ceasefire back on. Almost immediately, the shop gets a visit from Anthony Davis, which brings more attention to the shop.
By that evening, the shop sees even more business, including media coverage, as well as becoming a trending topic on Twitter. JD brings his food truck along and racks up some nice business as well.
Terri goes to the shop and sees Rashad. She apologizes for accusing him of adultery and they reconcile.
Kenny runs into the shop and tells Calvin that Jalen is at the park ready for a gang initiation (which Kenny had previously backed out of). Calvin rushes to the park as we see Jalen approaching Yummy over the initiation. When Calvin gets there, the gang has left, but Jalen decided to stay behind. Without a word, he joins his father.
In the morning, the ceasefire comes to an end, and the shop celebrates. Everyone starts to go home. Bree and Jerrod walk together, and they admit having feelings for each other, and they set up dinner for the next night. Draya later visits Terri and apologizes for coming onto Rashad, stating that she feels that Terri has her life figured out while Draya doesn't. Terri forgives her.
Jalen visits his dad at the shop and asks him to cut his hair for him. Calvin obliges and cuts off his dreads. The two reaffirm their love for each other, and then Calvin tells Jalen to sweep the floor.
Calvin's closing words state that he still loves his city, and he never gave up on it, since it never gave up on him. He and Jalen join Jennifer, along with Rashad, Terri and the kids.
During the closing credits, the shop gets an unexpected visit from President Obama (Reggie Brown). Eddie volunteers to give the man a haircut after earlier claiming to have cut his hair years ago. Visibly nervous, Eddie messes up and accidentally shaves a good part on the back of Obama's head.