The Garage Guide
Motor oil stain on a concrete garage floor
GG

The Garage Guide

Updated Mar 2026 · 12 min read

Problem

Garage Floor Oil Stains: How to Remove Them for Good

Remove garage floor oil stains with the right method for your stain's age. Fresh spills, set stains, and years-old patches all need different treatment.

TL;DR

Fresh oil spills (under 48 hours) come up with an absorbent and a degreaser. Set stains (weeks to months old) need a commercial concrete degreaser and heavy scrubbing. Old stains (years old) require a poultice to pull oil out of the concrete's pores. The method matters more than the product. Using the wrong approach on the wrong stain age wastes time and can push oil deeper into the concrete.

You scrubbed it. You poured dish soap on it. Maybe you tried WD-40 because someone online said it works. The stain is still there, possibly darker than before. This is the experience of nearly every homeowner who tries to remove an oil stain from a garage floor, and it happens for one reason: the method they used was designed for the wrong stain.

There is no single way to remove oil from concrete. A spill you catch in the first hour needs dry absorption and a light degreaser. A stain that has been sitting for two weeks needs an alkaline degreaser and a poultice. A dark patch that has been soaking into unsealed concrete for a year needs a microbial enzyme cleaner and several weeks of patience. Use the fresh-stain method on an old stain and nothing happens. Use a heavy solvent on a sealed floor and you strip the sealer. Add water to a fresh spill before absorbing it and you push the oil deeper into the pores.

The method has to match the stain. That is what this guide does.

First: Identify Your Stain Before You Do Anything

Do not start cleaning until you know how old the stain is. Using an absorbent on a year-old stain does nothing. Using a degreaser on a fresh wet spill spreads it. The three stain categories below require completely different approaches, and starting with the wrong one wastes time and can drive oil deeper into the concrete.

Stain Age Diagnosis Table

Stain TypeHow It LooksAgeRight Method
Fresh spillWet, shiny, darkened concrete, oil pools visibleUnder 48 hoursAbsorb first, then degrease
Set stainDark patch, dry to the touch, no surface shineDays to months oldCommercial degreaser plus stiff brush
Old embedded stainDark gray or black patch, faded edges, part of the floorMonths to years oldPoultice method
Years-old stainNear-black, may have ring edges from old treatment attempts1 or more yearsPoultice plus possible acid wash; may not fully remove

Also Identify Your Floor Surface

Your floor type changes the approach:

  • Bare unsealed concrete: The most porous surface. Oil soaks in fast and deep. All methods work, but require more dwell time.
  • Sealed concrete (clear or acrylic sealer): Oil sits on top longer before penetrating. Fresh spills are much easier to clean. Sealed surfaces respond well to degreasers. Avoid acidic cleaners.
  • Epoxy or polyurea coated floor: Oil does not penetrate the coating. Clean with a degreaser and mop only. Do not use solvents, abrasive brushes, or pressure washing above 1,500 PSI, which can lift the coating.
  • Painted concrete: Similar to coated floors. Avoid solvents that can strip paint. Use mild degreaser only.

The 48-Hour Rule: Fresh Spills

If you get to an oil spill within 48 hours, you have the best possible chance of full removal. After 48 hours, oil begins penetrating beyond the top layer of concrete pores, making complete removal increasingly difficult with each passing day.

Step 1: Absorb the Surface Oil First

Never wipe, mop, or scrub a fresh oil spill. Wiping spreads the oil and pushes it into a larger area. Instead, cover the entire spill with an absorbent material and leave it alone.

Best absorbents for fresh oil:

  • Clay cat litter (not clumping or silica type) — the most commonly available and effective option. Pour a 1/2 inch layer over the entire spill, press down lightly with your foot to increase contact, and leave for a minimum of 1 hour. For large spills, leave overnight.
  • Oil-dry or floor dry absorbent — a commercial product made specifically for garage oil spills. Works faster than cat litter on fresh spills.
  • Baking soda — works on very small, very fresh spills. Less effective on large volumes of oil.
  • Sawdust — works but leaves residue; requires more cleanup than cat litter.

What not to use: Paper towels, rags, or mops. These spread oil over a wider area and drive it into the pores rather than lifting it off the surface.

After the dwell time, sweep up the absorbent completely and dispose of it in a sealed bag in the trash. Do not wash it into a floor drain. Under the EPA's Clean Water Act, washing oil into storm drains is prohibited. Oil that reaches storm drains can contaminate waterways. Dispose of oil-soaked absorbents as solid waste.

Step 2: Apply a Degreaser

After the absorbent is swept up, a dark stain mark will remain. This is oil that has begun penetrating the top layer of the concrete. Treat it immediately with a concrete degreaser.

Recommended degreasers for fresh stains:

  • Simple Green Concrete and Driveway Cleaner ($10 to $15) — effective, low-VOC, safe for most surfaces
  • Zep Driveway and Concrete Cleaner ($10 to $15) — concentrated, works well on fresh-to-medium stains
  • Krud Kutter Concrete Cleaner ($12 to $18) — strong citrus-based formula, good on fresh spills

How to apply:

  1. Wet the stained area with water first. This prevents the degreaser from spreading the stain by drawing more oil to the surface.
  2. Apply the degreaser full strength directly to the stain.
  3. Let it dwell for 10 to 15 minutes. Do not let it dry completely.
  4. Scrub vigorously with a stiff-bristle brush or push broom with stiff nylon bristles. Use circular motion, working from the outside of the stain inward.
  5. Rinse thoroughly with clean water. A garden hose with a high-pressure nozzle works well. If you have a pressure washer, use it at 1,500 to 2,000 PSI.
  6. Let dry completely and inspect. Repeat if needed.

For a fresh stain treated within 48 hours, one or two degreaser applications typically produce near-complete removal on unsealed concrete.

Set Stains: Days to Months Old

A stain that has been there for more than 48 hours has moved past the top layer of concrete pores. Surface degreasing alone will lighten it but is unlikely to remove it completely. You need a product with stronger penetrating ability and longer dwell time.

Commercial Degreaser Method for Days to a Few Weeks Old

Products that work on set stains:

  • Oil Eater Original ($15 to $20) — concentrated alkaline degreaser, safe for concrete, effective on stains up to several months old
  • Purple Power Industrial Strength Cleaner ($10 to $15) — very strong, good on greasy set stains
  • Spray Nine Heavy Duty Cleaner ($12 to $18) — works well on petroleum-based stains

Process:

  1. Wet the area with water.
  2. Apply degreaser undiluted directly on the stain. For stubborn stains, mix with a small amount of powdered laundry detergent to create a paste.
  3. Cover with plastic sheeting and let dwell for 30 minutes to 1 hour. Covering prevents evaporation and keeps the product active longer.
  4. Scrub hard with a stiff brush. A drill-mounted scrub brush attachment significantly reduces effort on large stains.
  5. Rinse thoroughly.
  6. Repeat up to 3 times. Let the surface dry fully between applications so you can see progress.

The powdered laundry detergent method: Mix powdered laundry detergent (Tide or similar) with just enough hot water to create a thick paste. Trowel it onto the stain, let it dry completely overnight, and sweep it up. The alkaline detergent breaks down oil while the powdered formula absorbs it as it dries. This works well on stains up to a few months old. Do not substitute liquid dish soap — it lacks the drawing action of powdered detergent and can push oil deeper.

Trisodium Phosphate (TSP) for Stubborn Set Stains

TSP is a heavy-duty alkaline cleaner that cuts through oil stains that standard degreasers cannot fully remove. Available at hardware stores for $8 to $12 per box.

Mix 1/2 cup of TSP per gallon of hot water. Apply to the stain, let dwell for 20 to 30 minutes, scrub hard, and rinse thoroughly. Wear rubber gloves and eye protection — TSP is caustic and irritates skin and eyes on contact. Do not use TSP on sealed, painted, or epoxy-coated floors, as it will strip finishes.

Old and Embedded Stains: The Poultice Method

For stains months to years old, oil has migrated deep into the concrete's pore structure. A degreaser applied to the surface cannot reach it. The solution is a poultice — a paste that uses osmosis to pull oil back up through the pores and into an absorbent material.

A poultice works by reversing the direction of oil travel. When applied wet, the solvent in the poultice breaks down the oil deep in the concrete. As the poultice dries slowly under plastic sheeting, it creates a drawing effect that pulls dissolved oil upward into the absorbent material. This process takes 24 to 48 hours but reaches oil that no surface treatment can touch.

How to Make and Apply a Poultice

Materials needed:

  • Absorbent material: pool filter media (diatomaceous earth), powdered cat litter, sawdust, or powdered laundry detergent
  • Solvent: acetone, lacquer thinner, or a commercial product like Pour-N-Restore ($15 to $20) or Prosoco Oil and Grease Stain Remover ($25 to $35)
  • Plastic sheeting and tape

Step-by-step:

  1. Wet the stain with water. This prevents the stain from spreading when the solvent is applied.
  2. Mix the absorbent material with your solvent until the consistency is similar to peanut butter — thick enough to hold its shape, wet enough to make full contact with the concrete.
  3. Spread the poultice 1/4 to 1/2 inch thick over the entire stain, extending at least 1 inch beyond the stain's visible edges.
  4. Cover completely with plastic sheeting and tape down all edges. This slows evaporation and gives the poultice more time to draw oil upward.
  5. Leave undisturbed for 24 to 48 hours. Do not lift the plastic to check progress.
  6. Remove the plastic. The poultice should be dry or semi-dry. If it is still wet, recover and leave another 12 hours.
  7. Use a plastic scraper to remove the dried poultice. The material should be discolored where it drew oil out of the concrete.
  8. Scrub the area with a stiff brush and degreaser, then rinse thoroughly.
  9. Let dry completely and assess. For deep or long-standing stains, a second or third application is usually needed.

Commercial poultice shortcut: Pour-N-Restore is a ready-made poultice. Pour it on, spread with a putty knife, let it dry to a powder (4 to 8 hours), and sweep it up. Works well on stains up to a few years old. Not recommended for asphalt.

What to Expect From Old Stains

Set realistic expectations before starting. A stain in the concrete for several years has penetrated deeply and may have stained the concrete at a chemical level. Multiple poultice applications will typically reduce these stains by 70 to 90 percent. Complete removal is often not achievable on bare concrete stains more than 2 years old.

If a stain cannot be fully removed, sealing the floor after treatment locks in the remaining discoloration and prevents new oil from penetrating. Applying an epoxy or polyurea floor coating is the most effective solution for severe long-term staining — it covers the stain entirely and makes future spills trivial to wipe up.

What Not to Do

MistakeWhy It Makes Things Worse
Wiping a fresh spill with rags or paper towelsSpreads oil over a larger area and drives it deeper into pores
Using dish soap on an old stainDoes not penetrate concrete; can push oil deeper
Pressure washing without treating firstDrives oil further into the concrete rather than removing it
Applying bleach to oil stainsBleach does not remove oil; it bleaches surrounding concrete, making the stain more visible
Sealing or painting over an untreated stainOil wicks back through any sealer or paint within weeks to months
Using WD-40 to remove oilWD-40 is a petroleum lubricant, not a cleaner; it adds more oil
Leaving cat litter for only a few minutesNeeds at least 1 hour on a fresh spill; overnight is better for large spills

Disposal: Do Not Wash Oil Into the Drain

Oil-soaked cleaning materials and rinse water must be disposed of correctly. Under the EPA's Clean Water Act, discharging oil into storm drains is prohibited. Oil that reaches storm drains flows directly to waterways without treatment. Less than 1 quart of motor oil can contaminate up to 250,000 gallons of drinking water.

Correct disposal:

  • Oil-soaked cat litter, sawdust, or absorbents: seal in a plastic bag and place in regular household trash
  • Oil-soaked rags: seal in a plastic bag and place in household trash, or bring to a hazardous waste collection event
  • Rinse water with degreaser or solvent residue: do not wash into floor drains that connect to storm systems. If your garage floor drain connects to a sanitary sewer, small amounts of degreaser rinse are typically acceptable — check with your municipality first.

Most counties hold free household hazardous waste collection events for motor oil, solvents, and contaminated materials. Check your county's website for schedule and accepted materials.

How to Seal Your Floor After Treatment

Cleaning an oil stain on bare concrete and leaving the floor unsealed guarantees the next spill becomes a permanent stain. After any oil stain treatment, seal the floor to prevent future penetration.

Sealer Options by Budget and Use Case

Sealer TypeCost (Two-Car Garage)Protection LevelDIY?Notes
Acrylic concrete sealer$40 to $80ModerateYesEasy to apply; re-seal every 2 to 3 years
Penetrating silane/siloxane sealer$60 to $120GoodYesSoaks in rather than coating; invisible finish; lasts 5 to 10 years
Epoxy floor coating$150 to $400 DIYExcellentDIY possibleRequires thorough surface prep; oil beads on surface
Polyurea floor coating$1,500 to $3,500 professionalBestPro recommended4x harder than epoxy; same-day installation; resists chemicals

Before sealing: The concrete must be completely clean and dry. Any residual oil under a sealer will bleed back through within weeks. After cleaning, wait at least 72 hours before applying sealer. Do a water test — sprinkle water on the surface. If it beads, existing sealer is still present. If it soaks in, the surface is ready.

For full cost details, see our garage floor coating cost guide and epoxy garage floor cost guide.

Frequently Asked Questions

How do I remove fresh oil from a garage floor?

Cover the wet spill immediately with clay cat litter, oil-dry absorbent, or baking soda. Press it lightly into the oil and leave for at least 1 hour — overnight for large spills. Sweep up the absorbent and dispose of it in a sealed bag in the trash. Then apply a commercial concrete degreaser, wet the area first, scrub with a stiff brush, and rinse. Fresh spills treated within 48 hours can usually be removed near-completely on unsealed concrete.

What removes old oil stains from concrete?

Old embedded oil stains require a poultice — a thick paste of absorbent material and solvent spread over the stain, covered with plastic sheeting, and left for 24 to 48 hours. As the poultice dries slowly, it pulls oil up from deep in the concrete's pores through osmosis. Commercial options include Pour-N-Restore ($15 to $20) and Prosoco Oil and Grease Stain Remover ($25 to $35). Multiple applications are usually needed for stains more than 6 months old. Surface degreasers alone cannot reach deeply embedded oil.

Does WD-40 remove oil stains from concrete?

No. WD-40 is a petroleum-based product — using it on an oil stain adds more oil to the problem. Some sources suggest WD-40 can loosen old oil, but in practice it leaves the concrete more contaminated. Use a commercial alkaline degreaser or a poultice instead.

Can I use bleach to remove oil stains from my garage floor?

No. Bleach does not break down or remove oil. It bleaches the concrete around the stain, which can make the dark oil stain appear even more prominent against lighter surrounding concrete. Bleach is appropriate for mold, mildew, and general concrete discoloration but has no effect on petroleum-based oil stains.

Why does my garage floor keep showing oil stains after I clean them?

Oil that was not fully removed from deep in the concrete wicks back to the surface as the concrete dries. This is called oil bleedback. It happens when surface treatment was used without a poultice on a deep, old stain. The degreaser removes oil from the top layer, but oil in the lower pores eventually migrates back up. The solution is multiple poultice applications followed by sealing the floor after treatment.

How do I get oil stains off an epoxy garage floor?

Epoxy and polyurea coated floors do not absorb oil — the coating prevents penetration. Clean with a commercial degreaser and a mop or soft brush. Do not use solvents like acetone or lacquer thinner, as these can damage or cloud the coating. Do not use pressure washing above 1,500 PSI, which can lift coating at edges or weak spots.

Is it safe to wash oil-stained water down the floor drain?

It depends on where your floor drain connects. If it connects to a sanitary sewer, small amounts of degreaser rinse water are typically acceptable — check with your municipality first. If the drain connects to a storm system or leads outside, do not wash oily water into it. Under the EPA's Clean Water Act, discharging oil into storm drains is prohibited. Contain rinse water and dispose of it through your local household hazardous waste program.

How much does it cost to remove oil stains from a garage floor professionally?

Professional concrete cleaning and degreasing for a two-car garage typically costs $150 to $400, depending on stain severity and floor condition. Full floor coating installation — epoxy or polyurea — runs $1,500 to $3,500 professionally and eliminates oil stain problems permanently, since oil cannot penetrate a coated surface. DIY supplies for the poultice method and a degreaser cost $20 to $50 for most stains.

Related Guides

Glossary

Poultice

A thick paste made from an absorbent material (such as diatomaceous earth, sawdust, or powdered cat litter) combined with a solvent (acetone, lacquer thinner, or a commercial oil remover). Applied over an embedded oil stain and covered with plastic, a poultice uses osmosis to reverse oil migration. The solvent breaks down oil deep in the concrete while the absorbent material draws it upward as the poultice dries. Dwell time is 24 to 48 hours. The primary method for removing old, deep stains that surface degreasers cannot reach.

Concrete degreaser

An alkaline cleaning product formulated to break down petroleum-based oils and lift them from concrete pores. Works by emulsifying oil so it can be rinsed away with water. Most effective on fresh to medium-age stains (up to a few months old). Commercial options include Simple Green Concrete Cleaner, Oil Eater, Purple Power, and Zep Driveway Cleaner. Not effective alone on deeply embedded stains without a poultice step.

Trisodium phosphate (TSP)

A heavy-duty alkaline cleaner available at hardware stores for $8 to $12. Mixed with hot water at 1/2 cup per gallon and applied to oil stains, TSP penetrates deeper than most household degreasers. Particularly effective on set stains that standard degreasers have not fully removed. Requires rubber gloves and eye protection. Not safe on sealed, painted, or epoxy-coated floors, as it strips finishes.

Oil bleedback

The process by which oil that was not fully removed from the deep pores of concrete migrates back to the surface over days or weeks. Causes a stain to reappear after cleaning. The only remedy is complete oil removal using a poultice, followed by sealing the floor to block future migration. Oil bleedback is the primary reason stains appear to return after treatment with surface-only degreasers.

Concrete porosity

The degree to which concrete absorbs liquids through its network of microscopic pores and channels. Unsealed concrete is highly porous — a fresh oil spill begins penetrating immediately and reaches 1 to 2 inches deep within 48 hours. Sealed concrete is less porous; oil sits on the surface longer. Epoxy and polyurea coated floors are non-porous at the surface — oil cannot penetrate at all.

Acrylic concrete sealer

A clear or pigmented surface coating applied to concrete to reduce porosity and protect against stain penetration. Sits on top of the concrete rather than soaking in. Needs reapplication every 2 to 3 years. Easy to apply with a roller or sprayer. Provides moderate protection against oil — oil that sits on an acrylic-sealed floor for more than a few hours can still penetrate if the sealer is worn in high-traffic areas.

Epoxy floor coating

A two-part coating system (resin plus hardener) applied to concrete floors to create a hard, non-porous surface. Oil cannot penetrate epoxy and can be cleaned with a degreaser and mop. Standard epoxy costs $150 to $400 for a DIY two-car garage installation and lasts 5 to 10 years with proper surface preparation. Requires thorough oil removal before application — residual oil prevents adhesion and causes peeling.

Osmosis (poultice context)

The movement of a substance from an area of higher concentration to an area of lower concentration through a permeable medium. In a poultice applied to concrete, the solvent creates a high concentration of dissolved oil at the concrete surface while the dry absorbent material above creates a low-concentration zone. Oil migrates upward from the concrete into the drying poultice, pulling embedded stains to the surface where they can be swept away.

Polyurea floor coating

A professional-grade, two-component floor coating that is approximately four times harder than epoxy. Applied by professionals in a single day, polyurea creates a completely non-porous surface that resists chemicals, hot tire marks, and oil stains permanently. Costs $1,500 to $3,500 for a two-car garage. The most durable residential garage floor coating available and the most effective long-term solution for garages with chronic oil staining.

Get Expert Garage Help

Connect with qualified garage professionals in your area. Free quotes, no obligation.

0/500

By clicking "Get Free Quotes," I consent to be contacted by home service professionals at the phone number and/or email address I provided, including via automated calls, texts, and prerecorded messages, even if my number is on a Do Not Call list. I understand this consent is not a condition of purchase. I also agree to The Garage Guide's Terms of Service and Privacy Policy.