Rinse the stain with cold water, pour on 3% hydrogen peroxide, let it fizz for 5 to 10 minutes, blot, and repeat until the fizzing stops. Then rinse cold and launder as usual. This works on fresh and dried blood on white and colorfast fabric, mattresses, carpet and hard surfaces. Skip it on silk, wool, leather and dark dyes.
Quick steps: blood stains with hydrogen peroxide
- Flush the stain from the back with cold water.
- Test the peroxide on a hidden spot for 5 minutes.
- Pour or dab 3% hydrogen peroxide on the stain.
- Let it fizz 5-10 minutes, then blot with a white cloth.
- Repeat until the stain stops bubbling and fading.
- Rinse with cold water and wash cold.
- Air-dry and inspect before any heat touches it.

Tools and materials
- 3% hydrogen peroxide (standard brown drugstore bottle, 16 or 32 oz)
- Cold tap water
- White cotton cloths or paper towels (no colored rags)
- Nitrile gloves
- Spray bottle or dropper (optional, for upholstery and mattresses)
- Soft toothbrush or nylon scrub brush
- Baking soda and a small bowl (for paste on stubborn whites)
- Enzyme laundry detergent with protease (for dried stains on cotton and synthetics)
- Table salt (for wool and silk, where peroxide is off the table)
Calculators for this job
Safety first
Wear nitrile gloves when cleaning anyone else’s blood. Never mix hydrogen peroxide with bleach, vinegar or ammonia in the same container or on the same spot without rinsing between them. Use only 3% strength.
Why hydrogen peroxide works on blood (and when it doesn’t)

The heme group in hemoglobin, the iron-containing part of red blood cells, rapidly splits hydrogen peroxide into water and oxygen. That’s the white foam you see. The bubbling lifts blood out of the fibers while the peroxide oxidizes the red-brown pigment, so the color breaks down instead of just spreading.
That same oxidizing action is why peroxide is a mild bleach. On white cotton or polyester that’s a bonus. On a navy shirt or a red sofa, it can leave a pale blotch that’s worse than the stain.
Concentration matters more than people expect. Only the 3% bottle belongs in your laundry room.
| Product | Concentration | Use on blood stains? |
|---|---|---|
| Drugstore hydrogen peroxide (brown bottle) | 3% | Yes. This is the right product. |
| Hair developer, 10 volume | 3% | Works, but contains conditioners that can leave residue. Use the drugstore bottle instead. |
| Hair developer, 20 volume | 6% | No. Bleaches fabric fast and irritates skin. |
| Hair developer, 30 / 40 volume | 9% / 12% | No. High risk of holes and permanent color loss. |
| “Food grade” hydrogen peroxide | 35% | Never. Corrosive enough to burn skin and eyes. |
Step 1: Flush the stain with cold water
Get the item under cold running water as fast as you can. Turn the fabric inside out and run water through the back of the stain so it pushes blood out the way it came in, instead of driving it deeper.
Cold matters. Hot water cooks the proteins in blood and bonds them to the fibers, the same way an egg white turns solid in a pan. Even lukewarm water from a sink that’s been running hot can do it, so feel the stream first.
Rub the fabric against itself gently with your thumbs. Keep going until the water runs mostly clear. For a fresh stain, this step alone can remove 70 to 90 percent of what you see.
For things that can’t go under a faucet (mattresses, couches, carpet), blot with a cold, damp white cloth. Press and lift. Don’t scrub in circles, which spreads the stain into a bigger ring.
Step 2: Check the fabric and test the peroxide
Read the care label. If it says silk, wool, cashmere, angora, leather or suede, stop here and skip to the wool and silk section below. Peroxide can weaken protein fibers and strip the finish from leather.
For everything else, find a hidden spot: an inside seam, the hem, the underside of a cushion. Dab on a few drops of peroxide and wait 5 minutes. Then press a white paper towel on it.
You’re looking for two things:
- Color on the towel. The dye is bleeding. Don’t use peroxide.
- A lighter patch on the fabric. It’s bleaching. Don’t use peroxide, or dilute it 1:1 with cold water and test again.
If nothing changes, you’re clear.
| Material | Hydrogen peroxide safe? | Better option if not |
|---|---|---|
| White cotton, linen, polyester | Yes | N/A |
| Colorfast cotton and blends | Yes, after a spot test | N/A |
| Microfiber upholstery (code W or W/S) | Usually, after a spot test | N/A |
| Microfiber upholstery (code S) | No | Rubbing alcohol on a white cloth |
| Wool, cashmere, silk | No | Cold water and salt, then wool-safe detergent |
| Leather, suede | No | Leather cleaner, or a pro |
| Dark denim, black, navy, red | Risky | Cold water soak plus enzyme detergent |
| Unsealed wood, natural fiber rugs (jute, sisal) | No | Cold water, minimal moisture, pro cleaning |
Step 3: Apply the hydrogen peroxide
Pour the peroxide straight onto the stain until it’s saturated. On fabric you can tip the bottle directly. On a mattress or couch, use a spray bottle or soak a white cloth and dab, because flooding the padding causes water rings and slow drying.
It should start fizzing within a few seconds. Let it work for 5 to 10 minutes. Then blot with a clean white cloth, pressing firmly to pull the loosened blood out.
If no bubbles appear at all, your peroxide has likely gone flat. Opened bottles break down into plain water over a few months, faster in light or heat. Pour a little into the sink: active peroxide fizzes on the drain.
Pro tip
Leave peroxide in its original brown bottle. Light breaks it down, so a clear spray bottle filled in January is mostly water by spring. If you want a sprayer, screw a trigger head onto the original bottle.
Step 4: Repeat until the fizzing stops
Apply, wait, blot. Do it again. Most fresh stains need two or three rounds. Each round should foam a little less, because there’s less blood left for the peroxide to react with.
When fresh peroxide no longer bubbles and the cloth comes away clean, you’ve removed what peroxide can remove. Don’t let it sit for hours on colored fabric hoping for more. On whites, a 30-minute to 1-hour dwell is fine.
Step 5: Rinse with cold water
Rinse the area thoroughly with cold water to flush out the peroxide and any remaining blood. Peroxide left in the fabric keeps bleaching slowly as it dries, which is how a stain-free shirt ends up with a faint pale ring.
For mattresses and upholstery, dab with a cloth dampened in plain cold water, then press with a dry towel to pull out moisture.
Step 6: Wash cold and air-dry
Wash the item on a cold cycle with an enzyme detergent. Most mainstream liquid detergents (Tide, Persil and similar) contain protease, the enzyme that breaks down protein stains. Check the ingredient list for “protease” or “enzymes.”
Then air-dry it. Look at the spot in daylight when it’s dry. If you see any shadow at all, repeat Steps 3 to 5 before it goes near a dryer. Dryer heat sets whatever blood is left, and after that the stain is far harder to remove.
Expected result: A fresh stain on white or colorfast cotton should be completely gone. A dried stain usually disappears too, though a stain older than a few weeks may leave a faint tan shadow that takes a second soak.
Old and dried blood stains
Dried blood is harder because the proteins have bonded to the fibers. Peroxide alone often foams on the surface without reaching the bottom of the stain. Soften it first.
- Soak in cold water for 30 minutes to overnight. Add a tablespoon of enzyme detergent per gallon. A stain that’s been there a day needs about an hour. One that’s months old needs overnight.
- Scrape off any crust with a dull butter knife or your fingernail before applying anything.
- Apply peroxide as in Step 3, and work it in with a soft toothbrush.
- For stubborn whites, make a paste. Mix 2 parts baking soda to 1 part peroxide into the consistency of toothpaste. Spread it over the stain, let it sit 30 minutes, then brush and rinse cold. The baking soda adds gentle scrubbing and keeps the peroxide in contact with the stain instead of running off.
An oxygen bleach powder like OxiClean is another strong option for old stains on whites and colorfast fabric. It’s sodium percarbonate, which releases hydrogen peroxide when it dissolves, so you’re using the same chemistry in a longer soak. Follow the label: usually 1 to 6 hours in the coolest water that dissolves the powder.
Mattresses
Strip the bed and stand the mattress on its side if you can, so liquid drains away from the stain instead of sinking into the foam.
Spray peroxide lightly, let it foam for 5 minutes, and blot. Repeat. Finish by blotting with a cold damp cloth, then a dry towel. Let it dry fully before making the bed, ideally with a fan pointed at it for a few hours. Damp foam under a sheet is how mildew starts. If you already see dark speckles, deal with that problem separately and learn to remove “mold safely” before it spreads.
For old dried stains on a mattress, the baking soda paste works well because it stays put on a vertical surface. Let it dry completely, then vacuum off the powder.
Couches and upholstery
Find the cleaning code tag under the cushions:
- W: water-based cleaners are fine. Peroxide is OK after a spot test.
- W/S: water or solvent. Peroxide is OK after a spot test.
- S: solvent only. No peroxide and no water. Use rubbing alcohol on a white cloth, blotting only.
- X: vacuum only. Call an upholstery cleaner.
Use a spray bottle and keep the moisture light. Blot outward from the edges toward the center so you don’t create a ring. A slightly damp cloth over the whole cushion panel at the end helps the area dry evenly.
Carpet and rugs
Blot up as much as you can with cold water first. Then spray peroxide, wait 5 to 10 minutes, and blot with a white towel, standing on it to press the moisture out.
Spot-test first, because wool carpet and some dyed nylons will fade. Don’t reach for a steam machine until the blood is completely gone. The heat will set any remaining stain. Once it’s out, you can “steam carpets” as usual for a general refresh.
Hard surfaces, floors and walls
Sealed tile, porcelain, vinyl and laminate are easy. Wipe up the blood with a cold damp cloth, spray peroxide on whatever’s left, wait a couple of minutes and wipe clean. Peroxide also disinfects, so you’re cleaning and sanitizing at once.
Grout lines soak up blood. Spray peroxide, scrub with a stiff nylon brush, and rinse.
On painted walls, try a cold damp cloth first. Flat and matte paints can lighten under peroxide or scuff with scrubbing, so test in a corner. Satin, semi-gloss and gloss paint generally handle it fine.
Avoid peroxide on unsealed wood, oiled butcher block and natural stone like marble and limestone. Use plain cold water and a little dish soap there.
Wool and silk: what to do instead
These are protein fibers, which is why peroxide and enzyme detergents are both a bad idea. The protease that digests blood will also digest the fabric, and peroxide can yellow and weaken them.
Rinse with cold water immediately. Make a paste of table salt and cold water, dab it on, let it sit 15 to 30 minutes, and rinse. Follow with a wool-and-silk detergent like Eucalan or Woolite in cold water, and dry flat. If the stain survives that, take it to a dry cleaner and tell them it’s blood.
Common mistakes
- Hot water. Sets the stain. Cold water only, at every step.
- The dryer. Sets whatever is left. Air-dry until you’re sure.
- Scrubbing. Spreads the stain and frays fibers. Blot and press.
- Colored rags. Dye can transfer onto wet fabric. Use white.
- Mixing chemicals. Peroxide plus vinegar makes peracetic acid, which irritates lungs and skin. Peroxide plus bleach produces a violent reaction. Rinse between products.
- Skipping the spot test. A 5-minute test beats ruining a $900 sofa cushion.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| No fizzing at all | Peroxide has degraded to water | Buy a fresh bottle and store it in the dark |
| Foams but stain doesn’t fade | Dried stain, peroxide not reaching the base | Soak cold with enzyme detergent 1 hour to overnight, then retry |
| Pale or white spot after treating | Peroxide bleached the dye | Can’t reverse. Fabric markers or a dye touch-up help on small spots |
| Yellow or brown ring left behind | Blood or peroxide spread outward and dried at the edge | Dampen the whole area, blot from edges to center, rinse cold |
| Faint tan shadow after washing | Old stain with set-in pigment | Baking soda paste or oxygen bleach soak, then wash again |
| Stain came back after drying | Residue wicked up from padding | Re-treat, then press dry with towels and use a fan |
| Fabric feels stiff | Peroxide or detergent not rinsed out | Rinse again in cold water |
When to call a pro
Take silk, wool, leather, suede, vintage or “dry clean only” items to a dry cleaner, and tell them it’s blood. Call an upholstery cleaner for X-coded furniture or stains bigger than your hand. For large amounts of blood from an injury or death, call a biohazard remediation company, since that’s a bloodborne-pathogen cleanup, not a laundry job.
FAQ
How long to leave hydrogen peroxide to remove blood stains?
Leave it 5 to 10 minutes per application, then blot and repeat. Stop when fresh peroxide no longer fizzes. On white cotton you can let it sit up to an hour for a stubborn stain. On colored fabric, keep it to 10 minutes per round and rinse thoroughly.
What should you never clean with hydrogen peroxide?
Skip silk, wool, cashmere, leather, suede and dark or non-colorfast dyes. Keep it off unsealed wood, natural stone and flat paint. Never combine it with bleach, vinegar or ammonia. And never use anything stronger than 3% for household cleaning.
How to get dried blood out of a couch?
Check the cleaning code first. For W or W/S fabric, scrape off any crust, then mist with cold water to soften the stain for 10 minutes. Spray 3% peroxide, let it fizz 5 to 10 minutes, and blot. Repeat as needed, then blot with a cold damp cloth and dry with a fan. For S-coded fabric, use rubbing alcohol on a white cloth instead.
Does baking soda remove blood stains?
Baking soda alone is slow on blood. Mixed into a paste with hydrogen peroxide or cold water, it works well on dried stains. It keeps the liquid in contact with the stain and adds gentle scrubbing action. Use 2 parts baking soda to 1 part peroxide, leave it 30 minutes, then brush and rinse cold.
Will hydrogen peroxide damage my washing machine?
No. A few ounces from pre-treated laundry is harmless. Some people add a cup of 3% peroxide to a white load as a brightener, which is fine for the machine.
