The film begins in The Winchester, a traditional London pub. Shaun (Simon Pegg), his girlfriend Liz (Kate Ashfield) and her two friends David (Dylan Moran) and Dianne (Lucy Davis) are socializing while the overweight and foul-mouthed slacker Ed (Nick Frost) plays away on the slot machine. Liz is trying to encourage Shaun to strengthen their relationship and be more adventurous, rather than just reminiscing in the pub and hanging out with Ed. Liz reminds Shaun how she hasn't even met his mother yet, though they've been together for more than two years. The scene ends with Shaun staring vacantly towards the camera, clearly displaying anxiety.
The movie's intro credits roll, continually panning right through scenes of regular people performing everyday tasks. We see ordinary people moving supermarket trolleys, working behind tills (cash registers), waiting at the bus stop, or mindlessly listening to street music, all staring and acting zombie-like (a reference to the satirical elements of 'Dawn of the Dead').
Inside his house, Shaun wakes up and joins Ed in the living room where he joins in a video game on the PlayStation. Ed reminds Shaun that he has to go to work and Shaun begrudgingly goes to get ready. While Shaun is getting ready, his second flat-mate and college buddy Pete confronts him about Ed's behavior. Pete is fed up with Ed lounging around all day, freeloading off them and not bothering to find a job. Shaun defends Ed by saying he's harmless and fun to have around, to which Pete replies "Why? Because he can impersonate an orangutan? Fuck-a-doodle-do!". Both Pete and Shaun leave for work, with Shaun asking Ed to take down any phone messages (everyone's, not just his own) that come during the day. Just as Shaun leaves, Liz calls to leave an answerphone message for Shaun, asking him to book their restaurant dinner an hour earlier. Shaun doesn't hear the message.
The next sequence of scenes sees Shaun side-tracked by a series of bizarre events, including newspaper headlines describing attacks on members of the public, people collapsing at bus stops, and television news reports of more attacks and military involvement. Shaun arrives at work, an electronics retail shop, where he is manager. Shaun's step-dad, Philip (Bill Nighy), pays him a visit to remind him of his bi-monthly visit to his mum. The pair have a very frosty relationship and Shaun clearly does not like his step-father. Shaun holds a staff meeting for his team of clearly bored and feckless teenage staff. He tries to discipline a colleague for using his mobile phone on shop floor, and while doing this his own phone rings. To save looking hypocritical he is forced to pretend it's a work related call, and ends up ignoring a bemused Liz who's called to remind him about booking dinner earlier that evening.
Later, when Shaun is purchasing flowers for his mum, he notices a homeless man (Patch Connolly) outside staggering and trying to eat the pigeons, before vanishing when a bus cuts across the scene. On his way home, Shaun gets off the bus early as traffic is gridlocked, we see more accidents involving people passing out in their cars. On the walk home Shaun bumps into his old flame Yvonne (Jessica Hynes). She asks how he's getting on with Liz, which triggers his memory about booking the table for that evening. The scene cuts back to Shaun's flat as he desperately tries to call the restaurant to change the times, only to hear that they are fully booked. Liz then phones and Shaun explains that he forgot all about it, then suggests maybe they go to The Winchester...Liz then hangs up.
Shaun grabs the flowers and makes his way down to Liz's flat in an attempt to make amends with her. At first Liz refuses to let him in so Shaun tries and fails to scale the wall outside and enter through a window. Liz eventually relents and lets Shaun in to the flat, where she launches into a tirade. She lists all the promises Shaun's broken, and tells him how she's tired of putting up with a relationship that's clearly going nowhere. In her rage she finishes the relationship and David and Di stand by awkwardly.
That evening, Shaun makes his way alone to The Winchester through the pouring rain, throwing his mother's flowers in a wastebin outside the pub. He meets with Ed and they spend the night joking and drinking heavily. A figure outside the pub batters against the window and moans, to which Ed simply retorts 'Piss head!".
Drunk and still singing, the duo make their way outside... not noticing a zombie teenage girl tearing someone's head off. They mock a moaning zombie as another drunk... and make their way back home. They continue to sing and play loud rock music until Pete storms downstairs in a rage at being woken up by the noise. He throws the record out the window and launches into a barrage of swearing, verbally attacking Ed and telling Shaun to sort his life out. Ed notices that Pete's hand is bandaged and Pete tells him that a 'crackhead' bit him and he has a splitting headache. He shouts at them one last time for leaving the front door open, again, and returns to his room.
The next morning arrives and Shaun decides to go walk down to the corner shop for a drink, and a Cornetto for Ed. Still hungover from the previous nights drinking, Shaun is completely oblivous to the carnage surrounding him: smashed cars, blood-stained floors and windows, corpses lying on sidewalks and front porches, police and ambulance sirens in the distance, and hordes of zombies slowly flooding the streets. Back at the flat, Shaun skips through the TV channels, past entertainment channels and news reports of the incidents. Ed, looking out of the window, tells Shaun there's a girl in their garden.
Out in the garden, they try and get the teenage girl's attention. When she turns around she is a deathly-pale, white-eyed zombie. They think she's drunk, until she attacks them. Thinking that she's just a nuisance, Shaun pushes her back and she trips and impales herself on a metal stump. Shaun and Ed are seen looking very shocked as the zombie girl slowly stands up as if nothing has happened. Panicking, they choose to go back inside only to be confronted by another male zombie. They make it past him and return to the safety of the house.
Back inside, Shaun dials 999, but the line is engaged. The pair sit down on the sofa watching the news, when a blood-covered, tuxedo-clad zombie with a severed arm makes his way inside (Shaun left the front door wide open again) the pair attack it by throwing any object they can. Only for Ed to kill it by smashing a glass ash tray on its head. The pair then decide to take on the two zombies still in the garden, again, by throwing any household object they can, at their heads. When Ed finds the record Pete threw out last night and throws it at the male zombie, it sticks into him like a blade, prompting their second idea...
They go through Shaun's record collection and throw every record they dislike (the Batman soundtrack, Dire Straits) and use them as projectiles. When that plan fails, Shaun bashes down the shed door, and the pair arm themselves with a cricket bat (Shaun) and a shovel (Ed), they then beat the zombies to death.
Back inside, the shaken Shaun and Ed are finally aware at what is going on and they are now watching the TV news reports advising people to contain anyone who has been bitten. At this point Shaun and Ed then remember Pete and the bite he claims to have gotten the previous day. They call upstairs to him, but get no response. Shaun then tries to call Liz but can't get through. His mum, Barbara (Penelope Wilton), then calls him, she tells him that some men were trying to attack her and Philip outside their house, but only Philip was bitten, much to Shaun's relief. Shaun and Ed then go through plans to rescue his mum and Liz, kill zombie Philip, and rendezvous at The Winchester.
Preparing to leave, Shaun goes to the toilet, only to discover a naked zombified Pete in the shower (he had apparently turned while he was preparing to shower). Wasting no more time, Shaun and Ed head outside to Pete's car, only to attract the attention of every zombie outside on the street--they now number in the dozens. They drive at high speed, listening to the radio reports of a coming apocalypse and witnessing zombie attacks on every street corner they drive past. They make it to Philip's and Barbara's house and screech to a halt outside. Philip's Jaguar immediately catches Ed's eye and he convinces Shaun to let him wait in the car 'as a lookout'.
Inside, Barbara greets Shaun warmly and makes him tea. Shaun goes to kill Philip while Barbara is distracted. He finds Philip hasn't become a zombie yet, but is very ill. After some discussion, Shaun convinces them to come with him and Ed. Outside, Ed has intentionally crashed Pete's car so they can ride in Philip's Jaguar. As they get into the Jaguar another zombie attacks and bites Philip in the neck--a wound which will prove mortal. The four quickly get in the car and drive to Liz's apartment building.
At Liz's flat, Shaun tells Ed to stay outside in the car on lookout again. Dozens of zombies are swarming outside, and Shaun dispatches them quickly with his cricket bat and makes his way to the front door. When he gets cornered again, he makes his way into the flat by climbing up to the fourth floor window. Inside, Shaun convinces Liz, David and Di to come with himself, Ed, Barbara and Philip to The Winchester for safety. The four make their way outside clubbing the zombies to get to the car. It's here that Shaun finally introduces Liz to his mum.
On the way down the road, Ed is intentionally mowing down every zombie he can. Philip, bleeding profusely, tells Shaun he took a tough attitude towards him was to help him become better, and hoped Shaun would look up to him. He tells Shaun he loves him before he dies. Shaun, in an emotional state, orders Ed to pull over and tells Barbara that Philip is dead. She looks and says "no he isn't". Shaun then panics as he sees that Philip has instantly become a zombie, and shouts for everyone to get out of the car.
Out in the open and vulnerable, the six head for a short-cut, making their way through the back-alleys of the local houses. They bump into Yvonne and another group of five people (who all strike similar resemblance to Shaun's team) who are also trying to survive. After some quick talk, Shaun and Yvonne embrace before parting ways.
They start to pass through the back gardens. When they come to a garden where the Winchester is just over the other side, Shaun sees that his mum is missing from the team, and quickly jumps back into the previous garden, where he fends off another zombie. Liza and Di join in to help, passing a tennis pole to use as a weapon, Shaun then impales the zombie against a tree, imobilising although not killing it.
Shaun checks over the fence to see if the coast is clear, only to his horror to discover that there are hundreds of the undead swarming the street in front of the Winchester. Shaun has an idea: Dianne is a actress-in-training, so she gets the other five to mimic the actions and sounds of the zombie impaled behind them so they can sneak through the crowds of zombies unsuspected. At first the plan seems to work, but as they make it to the doorway, the zombies start to become suspicious. The group tries to get into the building only to realize that the pub is closed and locked up; then Ed completely gives them away when he just cannot resist answering his mobile phone and starts chatting. Shaun knocks away the phone and berates the stupid and irresponsible Ed, saying that he has spent his whole life covering for Ed's failures and foul-ups. He ceases when he sees that ALL the zombies have turned their attention to the group. Aware that the game is up, David quickly throws a trash bin through the window, smashing the glass, for everyone to get inside. To make sure the zombies don't follow them, Shaun waves and shouts and gets the zombies to chase him (or simply, stagger after him), causing a distraction while the others scramble inside. Barbara spots the flowers Shaun had bought for her and discarded, and takes them into the pub.
Hours pass and Shaun has not returned, David suggests blocking up the shattered window since the street in front of the pub is still deserted, although Liz is insistant that Shaun will return, leading to David complaining about the entire situation they're in. Shaun eventually makes it back (through the back door) saying that he "gave them the slip". The group manages to board up the front shattered window and secure the locked doors.
Night falls, and the group of six are bored and decide to see there's anything on the TV. As there's no electricity in the pub, Shaun goes into the back room to turn on the main circuit breakers. When he turns the lights on, he's shocked to discover that the zombies have followed him back and are massing outside the back door.
Back in the main pub, both the local and major TV channels are broadcasting only "stay tuned" screens. Shaun whispers that the zombies followed him back, and they agree to keep very quiet. However, Ed being Ed, messes it up again by turning on a noisy video slot machine. Zombies now surround the outside of the pub in the front and back entrances and battering at the doors to get inside. Just then, the zombie pub landlord crawls in to attack. With the electricity on, the juke box turns on and starts to play "Don't Stop Me Now" by Queen. Shaun, Ed and Liz all grab pool cues and (in a classic scene) club the zombie to the song's beat. Dianne joins in by throwing darts at the zombie, only for one to land in Shaun's head. Ed tosses the Winchester repeating rifle from the bar to Shaun (who thinks it's deactivated) and kills the zombie by smashing its head through the juke box. Asking why Shaun didn't just shoot him, Shaun tries to explain it's not functional only to be blown back when he pulls the trigger. The Winchester rifle is fully loaded.
Packed together, the group join to defend against the masses of the undead. As they start to charge through the front windows, Shaun fires but misses several times, with the others' directions being much help, except when Ed calls out the same way they do in their video-games. Di notices something's wrong with Barbara, and goes to her aid. She reluctantly reveals that she was bitten by the zombie they impaled with the tennis pole, but has kept it quiet so as not to worry Shaun and the others . Every one of the group comes to her need except for David, who's been left with the rifle. Barbara thanks Shaun for the flowers, then collapses dead in his arms. David cocks the gun and aims for Barbara, coldly saying it has to be done before she zombifies and attacks them. Shaun explodes in a fit of rage, holds a broken bottle to his neck and threatens him to stop aiming at her. Ed does the same, Dianne says this isn't fair, so he gives her the broken bottle (to point at Shaun) and Ed points a corkscrew at David, leading to a Mexican stand-off, which ends just as quickly when Barbara rises as a zombie. Shaun takes the gun, emotionally apologizes to his mum, and shoots her dead.
When David says he did the right thing, Shaun retaliates by punching him. David tries to shoot Shaun, only for the gun to run out of shells. He then decides to leave. Dianne scolds him; he apologizes, but Dianne says he should apologize to Shaun. When he tries, zombies smash through the window and pull David through, completely dismembering him. Dianne irrationally opens the front door and charges for the zombies in a blind effort to save David. Her fate is left unknown but it is implied that she too gets torn apart and eaten alive.
The zombies break into the pub at all corners, including Pete, much to everyone's surprise. Pete and others swarm over Ed and bite into him, and Shaun shoots Pete in the head finishing him off. Shaun and Liz then jump over the bar and hide behind it, dousing the bar with brandy and setting it afire. Ed, severely wounded, makes it over the bar to join them. The box of rifle shells was left in the burning mess, and they begin to explode adding to the fire. With only two shells to spare, the three survivors make their way into the cellar, and find a lift down there that will lead to the outdoors.
With the lift and the trapdoor not working, the remaining three are trapped in the cellar as the building is now on fire. Shaun contemplates the last two shells for Liz and himself. Ed says "I don't mind being eaten". They share a last cigarette between them, only to see the power switch for the lift when they light up. Shaun tries to get Ed to come with him, but Ed knows he's done for anyway as he's bitten, and decides to stay. Liz and Shaun say their farewell to Ed and make it out into the street.
Prepared for more fighting, luck comes their way as the military arrives and opens fire on the zombies. Accompanying them is Yvonne, who says they're evacuating any survivors. Shaun and Liz follow, holding hands.
The next scene opens with several TV shows and reports saying that months have passed since the outbreak, and that captive zombies are now being used in everyday life, for menial jobs such as trolley stacking (table clearing in restaurants, collecting shopping carts, etc.) and used as part of silly game shows.
Shaun wakes up... in the same zombie-like way at the beginning of the film... and he is sharing the flat with Liz, the two of them now a couple again. They plan a peaceful day together. The film ends with Shaun saying he's gonna pop out to the shed, where the zombie Ed is chained up so they can play video-games together.