TL;DR
- Fresh spills (under 24 hours): absorb with clay kitty litter, then degrease. Usually comes out cleanly.
- Moderate stains (weeks to months): commercial degreaser like Purple Power, Oil Eater, or EBC, plus agitation.
- Old set-in stains (years): caustic sodium-hydroxide chemistry and multiple treatment cycles. Hot water speeds it up significantly.
- Complete removal on deeply stained older concrete sometimes isn’t possible — budget 70 to 90% improvement as realistic.
- Never use gasoline, paint thinner, or bleach on concrete oil stains. Bleach does nothing for oil and damages the concrete.
Oil stains on concrete are the single most common driveway problem we get calls about. About 60 percent of driveways in San Diego County have at least one. They come from leaky gaskets, dripped transmission fluid, cooking oil from a barbecue mishap, hydraulic fluid from a lawnmower — any petroleum-based liquid that met unsealed concrete and never had a chance to come back up. Getting them out is possible, but the method has to match the stain age and type. Here’s exactly what works.
Why oil is so hard to remove
Concrete is porous. Not as porous as brick, but porous enough that a few drops of motor oil can wick down 1 to 3 millimeters in the first hour, then continue drawing in deeper over days and weeks as temperature cycles push and pull. A stain you see on the surface is actually a plume extending down into the slab.
Removing it isn’t a matter of “cleaning the surface.” It’s a matter of pulling the oil back up out of the concrete, which takes time and repeated treatment. A single swipe with a degreaser on a 2-year-old stain removes maybe 40 percent of the visible discoloration. Three cycles might get 75 percent. Complete removal on old stains sometimes isn’t possible — setting an honest expectation with yourself is half the game.
Method by stain age
Fresh spills (under 24 hours)
This is the easy case.
- Absorb the liquid first. Dump clay kitty litter, sawdust, or cornmeal on it. Press it down. Leave for 2 to 4 hours. Sweep up.
- Repeat if there’s more oil. If the spot is still wet-looking after the first pass, do it again.
- Degrease with dish soap and hot water. Dawn blue concentrate + hot water + stiff brush. Rinse.
- If staining remains, apply commercial degreaser. Purple Power, Oil Eater, or equivalent. Follow bottle directions — usually a 10-minute dwell.
- Rinse thoroughly.
At the under-24-hour stage, this usually gets you to 95+ percent clean. If the concrete was sealed before the spill, often 100 percent.
Moderate stains (days to months)
At this age the oil has wicked down into the concrete and surface cleaning alone won’t pull it all back. You need a degreaser that penetrates.
- Dry-brush the area first to remove loose dirt and any remaining surface oil.
- Apply a heavy coat of commercial degreaser. Purple Power or Oil Eater at full strength, or EBC chemistry (professional grade), or ZEP commercial degreaser.
- Scrub aggressively with a stiff-bristle deck brush. Not a soft brush. Scrubbing drives the degreaser into the pores where the oil lives.
- Add hot water if possible. A kettle of boiling water poured over the scrubbed stain accelerates the solvent action significantly.
- Dwell 15 to 30 minutes. Keep the area wet — mist with more solution if it dries out.
- Rinse with high pressure. A pressure washer at 2,000+ PSI with a 25-degree tip flushes the released oil out of the concrete.
- Assess, repeat if needed. Often 2 or 3 cycles are required. Each cycle pulls out more.
For a two-car driveway with moderate staining, budget 2 to 3 hours of labor and about $30 in supplies.

Old set-in stains (years)
For oil that’s been in the concrete for a year or more, you’re fighting decades of thermal cycling that has driven the stain deep. Now you need caustic chemistry and patience.
The pro approach:
- Apply a caustic cleaner. Sodium hydroxide-based products (like industrial concrete degreasers at 5-10% strength) or a commercial caustic cleaner.
- Apply a poultice. Mix the chemistry into a thick paste with a carrier — kitty litter, diatomaceous earth, or talc. Cover the stain with a thick layer. The poultice pulls oil out of the concrete as it dries.
- Cover with plastic. Tape plastic over the poultice so it stays moist and keeps pulling.
- Leave for 24 to 48 hours. Slow pull is what works on deep stains.
- Remove poultice. Sweep or scrape up the dried paste. It will be dark — that’s the oil that came out.
- Hot-water pressure wash with degreaser. High-flow hot water plus sodium hydroxide degreaser will flush the remaining residue.
- Repeat the poultice cycle. Once usually isn’t enough on old stains.
For old, deep-set stains, expecting 70 to 90 percent improvement is realistic. The last 10 to 30 percent is usually stain that’s bonded with the concrete chemistry itself — no product pulls it back without damaging the slab.
Chemistry rundown
Each category of product works on a different mechanism:
- Enzyme degreasers (Simple Green, Oil Eater) — biological, break oil into smaller molecules that rinse away. Best for fresh-to-moderate stains. Plant-safe and skin-friendly.
- Caustic degreasers (Purple Power, Zep Industrial Purple) — sodium hydroxide-based, saponify oils (convert them to soap). Work faster than enzymes, harsher on skin and plants.
- Solvent degreasers (mineral spirits, citrus-based cleaners) — dissolve oils directly. Good for specific types of oil but problematic for runoff and ventilation.
- Professional grade (EBC, ZEP Heavy-Duty Concrete Cleaner) — stronger caustic, longer dwell time, more effective on old staining. Require PPE.
Never mix categories. In particular, never combine any degreaser with bleach — the reaction can release toxic gas and damages concrete permanently.
What doesn’t work (despite what you’ll read online)
Bleach. Bleach oxidizes organic material but doesn’t do anything meaningful to petroleum hydrocarbons. It will discolor your concrete and kill surrounding plants, but the oil stain will be right where you left it.
WD-40. It’s oil-based itself. It will appear to “clean” briefly by making the existing stain wetter and darker-looking-then-lighter as the mineral oil carrier evaporates, but it leaves more oil behind.
Coca-Cola. Phosphoric acid, which does work on rust but does nothing on petroleum.
Baking soda alone. It’s an absorbent, and it can help on fresh spills, but doesn’t pull oil from cured stains.
Gasoline or paint thinner. Technically dissolves oil but introduces a worse solvent that damages concrete, risks fire, and leaves residue. Don’t.
Rust stains are different
If you see a reddish-orange stain (not dark-black oil), that’s rust — usually from iron-bearing water, a rusty tool left on the concrete, or iron-rich fertilizer. Rust needs an acid-based remover, not a degreaser. F9 Barc (oxalic acid) is the industry standard. Apply, dwell 5 to 10 minutes, rinse with plenty of water. Never mix F9 with chlorine — the resulting gas is dangerous.
Paint, tar, tree sap, and battery acid all need their own specific chemistries. For a full picture of what can and can’t be removed, see our rust and oil stain removal service page.
Prevention: seal the concrete
The best oil-stain removal strategy is not having the stain in the first place. A penetrating silane-siloxane sealer (Seal Thane, Prosoco, Ghostshield) applied to clean concrete creates a microscopic hydrophobic barrier 1 to 3 mm into the surface. Oil that lands on sealed concrete sits on top for 15 to 30 minutes before absorbing — plenty of time to wipe it up with a rag.
Sealing is worth the $0.50 to $1.50 per square foot if:
- You park a car in your garage or driveway regularly
- You’ve had oil stain problems before
- Your concrete is new and you want to protect it
- You do any vehicle or equipment maintenance at home
Seal only after a thorough cleaning. Concrete must be fully dry (48+ hours, ideally a week) before sealing. And never seal fresh-poured concrete until it’s fully cured (28 days minimum).
When to call a pro
DIY is worth it for fresh-to-moderate stains on a small area. Hire a pro when:
- You have multiple old stains across a large driveway
- The staining covers more than 50 square feet
- You’ve already tried DIY and aren’t satisfied
- You also want sealing done after cleaning
- The concrete is stamped, colored, or decorative (easy to damage)
A professional driveway cleaning with stain treatment uses commercial-grade chemistry, hot-water pressure washing, and multiple cycles where needed. For deep-set staining we often do a two-visit job — cleaning on day one, then a seal after the concrete is fully dry.
Call (858) 808-6055 or text us photos of the stains through the contact form. Most quotes returned within a business day. Licensed C-61/D-38, fully insured. We serve all of San Diego County — from the coast to inland East County.