Food poisoning can hit as fast as 30 minutes after eating contaminated food, or it can take days or even weeks to show up. The speed depends entirely on what’s making you sick. Some foodborne illnesses are caused by toxins already present in the food, which trigger symptoms almost immediately. Others involve bacteria that need time to multiply inside your body before you feel anything.
The Fastest Cases: 30 Minutes to 8 Hours
The quickest food poisoning comes from preformed toxins, meaning the bacteria already produced their poison in the food before you ate it. Staph food poisoning is the classic example, with symptoms starting anywhere from 30 minutes to 8 hours after the meal. Because the toxin is already there when you swallow it, your body doesn’t have to wait for bacteria to grow. Your gut reacts to the toxin directly, and vomiting is usually the dominant symptom.
One type of illness caused by Bacillus cereus works the same way. Its emetic (vomiting) form kicks in within 30 minutes to 5 hours and is commonly linked to reheated rice and pasta. These toxins are heat-resistant, so cooking the food again won’t destroy them once they’ve formed. This is why food that’s been left at room temperature too long can make you sick even after you reheat it thoroughly.
The Middle Range: 6 to 48 Hours
Many of the most common foodborne illnesses fall into this window. Salmonella typically causes symptoms within 6 hours to 6 days, though many people feel sick within the first day or two. Norovirus, one of the most frequent culprits behind outbreaks, takes 12 to 48 hours. Clostridium perfringens, often associated with meat dishes and gravies that have been kept warm for too long, hits between 6 and 24 hours.
These organisms work differently from the preformed toxins. Instead of poisoning you on contact, they either need to colonize your gut or produce toxins inside your digestive tract after you’ve eaten them. That extra biological step adds hours to the timeline. The diarrheal form of Bacillus cereus, for instance, takes 8 to 16 hours because the bacteria produce their toxin after reaching your intestines, compared to the vomiting form that acts within hours.
Slow-Building Illnesses: Days to Weeks
Some foodborne pathogens take surprisingly long to cause symptoms. Campylobacter, one of the most common bacterial causes of food poisoning, has a 2 to 5 day incubation period. E. coli typically takes 3 to 4 days, and the dangerous O157:H7 strain can take anywhere from 1 to 8 days. These bacteria need time to establish themselves in your intestinal lining before your body mounts a response.
Listeria sits at the extreme end. Mild gastrointestinal symptoms can appear within a couple of days, but the more serious invasive form of the illness takes an average of about two weeks to develop. In rare cases, symptoms don’t appear for up to 90 days. This long delay makes it especially difficult to trace the illness back to a specific meal. Hepatitis A is similarly slow, averaging 28 days before symptoms emerge, with a range of 15 to 50 days.
Why You Often Blame the Wrong Meal
Most people assume the last thing they ate made them sick. If you throw up at 10 p.m., you’ll naturally suspect dinner. But given that many common pathogens take one to several days to cause symptoms, the culprit is often a meal you’ve long forgotten about. The only type of food poisoning you can reliably trace to your most recent meal is the fast-acting, toxin-driven kind, like Staph, where symptoms appear within hours.
Cleveland Clinic gastroenterologist Dr. Ford notes that toxin-based food poisoning is slightly easier to identify because people can often think back a few hours and remember that the egg salad was sitting out too long or the buffet food seemed off. But for anything with a longer incubation period, pinpointing the source on your own is mostly guesswork.
Food Poisoning vs. Stomach Flu
Both cause vomiting and diarrhea, so telling them apart in the moment can be tricky. The biggest clue is timing. Toxin-driven food poisoning tends to come on fast, often within 2 to 6 hours of eating something questionable. The stomach flu (viral gastroenteritis from person-to-person spread) typically has a 24 to 48 hour incubation period and tends to come with more whole-body symptoms like fever, chills, and muscle aches.
Duration also differs. Most food poisoning cases resolve within 12 to 48 hours. The stomach flu generally lingers for about two days, sometimes longer. That said, some bacterial infections like Campylobacter can make you sick for weeks, blurring the line between what people casually call “food poisoning” and a more serious infection.
What Your Symptoms Tell You About Timing
The type of symptoms you experience can hint at what kind of pathogen is involved and roughly when you were exposed. Early, aggressive vomiting with little or no fever points toward a preformed toxin, meaning you likely ate the contaminated food within the past few hours. Watery diarrhea that starts 6 to 16 hours later, without much vomiting, is more typical of bacteria like Clostridium perfringens producing toxins inside your gut.
If diarrhea is the main symptom and it takes a couple of days to appear, especially if there’s blood or mucus, that pattern fits bacterial infections like Campylobacter, Salmonella, or E. coli. Fever and body aches alongside the digestive symptoms make a bacterial or viral cause more likely than a simple toxin exposure. Symptoms that start with nausea and vomiting and then transition to diarrhea over 12 to 48 hours are the hallmark of norovirus.
Quick Reference: Onset by Pathogen
- Staph aureus: 30 minutes to 8 hours
- Bacillus cereus (vomiting type): 30 minutes to 5 hours
- Clostridium perfringens: 6 to 24 hours
- Bacillus cereus (diarrheal type): 8 to 16 hours
- Norovirus: 12 to 48 hours
- Salmonella: 6 hours to 6 days
- Vibrio: within 24 hours
- Botulism: 18 to 36 hours
- Campylobacter: 2 to 5 days
- E. coli: 3 to 4 days (O157:H7 strain: 1 to 8 days)
- Listeria: days to 2 weeks for gut symptoms, up to 90 days for invasive illness

