Clean Oil Stains from Garage Floor

Oil stains mark territory in a garage floor like rings in a tree trunk. Every drip tells a story — the truck that needed a pan gasket, the lawnmower that sat too long, the project car that's still a project. Fresh oil comes up easy if you catch it. Set stains require chemistry and patience. The concrete in most garage floors is porous enough to drink up oil like a sponge, which means surface cleaning alone won't work on older stains. You need to draw the oil back out, break down what's bonded to the aggregate, and then seal the surface so the next leak doesn't penetrate as deep. The difference between a clean floor and a stained one isn't the equipment in the garage — it's knowing which cleaner does what and when to stop scrubbing and start drawing.

  1. Absorb Oil Before It Sets. If the stain is less than a day old, cover it completely with cat litter, sawdust, or cornstarch. Let it sit for 2-4 hours, then sweep it up. This pulls out oil that hasn't fully penetrated the concrete. For still-wet spots, add a second layer and grind it into the stain with your boot to increase contact.
  2. Break Down Surface Oil. Pour dish soap directly onto the stain — enough to cover it in a thick layer. Add hot water and scrub hard with a stiff nylon brush using circular motions. Let the soapy mixture sit for 20 minutes, then scrub again. Rinse with a hose or bucket of clean water and squeegee away the runoff.
  3. Activate Deep Degreaser Action. For stains older than a few days, spray or pour a concrete-specific degreaser over the area according to bottle directions. Most require 10-15 minutes of dwell time. Scrub with a stiff brush, adding more product if the stain is large or deep. Rinse thoroughly and check your progress.
  4. Draw Oil from Deep Layers. Mix trisodium phosphate (TSP) with an absorbent powder like diatomaceous earth or powdered laundry detergent until it forms a thick paste. Spread it over the stain in a layer about half an inch thick. Cover with plastic wrap and let it sit for 24 hours. The poultice will draw oil up from deep in the concrete as it dries.
  5. Extract Concentrated Oil Residue. Remove the plastic and scrape up the dried poultice with a putty knife or paint scraper. You'll see the oil concentrated in the powder. Sweep up the debris, then rinse the area with clean water and scrub lightly with a brush. Check if the stain has lightened. Repeat the poultice process if needed.
  6. Blast Out Trapped Residue. If a shadow of the stain remains, use a pressure washer with a 15-degree nozzle held about 12 inches from the surface. Work in overlapping passes. This blasts out residue trapped in the concrete's pores. Let the floor dry completely — usually 24 hours — before assessing whether another treatment is needed.
  7. Lock In Long-Term Prevention. Once the floor is completely dry and clean, apply a concrete sealer with a paint roller or pump sprayer. This fills the pores and prevents future oil from penetrating as deeply. Most sealers require two coats with 4-6 hours between applications. The floor will be ready for traffic in 24 hours.