Remove Oil Stains from Concrete Garage Floor

Concrete is porous. Oil doesn't sit on the surface — it soaks in, spreading laterally through the aggregate and cement matrix. The longer it sits, the deeper it goes, which is why a puddle from last night's leak is salvageable while a five-year-old drip spot might be permanent. Most garage floors collect both: fresh drips you can catch early and ghost stains that have become part of the slab's character. The goal isn't laboratory cleanliness — it's removing the active oil that tracks into the house and the dark spots that make the floor look neglected. Successful removal depends on drawing the oil back out of the concrete, not just scrubbing the surface. That means absorbent materials, chemical degreasers that break molecular bonds, and sometimes heat or time to pull trapped hydrocarbons to the surface where you can lift them away. Fresh stains come up in an afternoon. Old stains require patience, repetition, and realistic expectations about what 'clean' means on a twenty-year-old garage floor.

  1. Trap Fresh Oil First. For wet or fresh stains, cover the entire spot with clay cat litter, sawdust, or cornstarch — whichever you have on hand. Press it into the oil with your boot. Let it sit for 2-4 hours, then sweep it up. This pulls liquid oil out before it penetrates deeper. For really fresh spills, do this twice.
  2. Break Oil Bonds. Spray or pour a concrete degreaser directly onto the stain, covering it completely and extending 2 inches beyond the visible edge. Let it sit for 10-15 minutes so the chemicals can break down the oil bonds. For old stains, use a stiff brush to work the degreaser into the concrete surface while it's still wet.
  3. Scrub Surface Aggressively. Use a deck brush or stiff push broom to scrub the area in overlapping circles, applying real pressure. You're not polishing — you're abrading the surface to open pores and let the degreaser penetrate. Scrub for 3-5 minutes, adding more degreaser if the area dries out.
  4. Rinse and Evaluate. Flush the area with a hose or pressure washer, pushing the contaminated water toward a floor drain or out the garage door. Let the concrete dry completely — this takes 4-6 hours. Once dry, assess the stain. If it's visibly lighter but still present, you'll need a poultice treatment.
  5. Draw Oil Out Chemically. Mix powdered TSP or a concrete-specific cleaner with water to form a thick paste, about the consistency of peanut butter. Spread it over the stain in a layer 1/4 to 1/2 inch thick, extending past the stain edges. Cover with plastic sheeting and tape down the edges. Let it sit for 24 hours.
  6. Lift and Repeat. Peel off the plastic and scrape up the dried poultice with a plastic putty knife or stiff brush. The paste should have darkened as it absorbed oil. Scrub the area again with fresh degreaser and a brush, then rinse thoroughly. For stubborn stains, repeat the poultice process once more.
  7. Seal Against Future Stains. Once the floor is completely clean and dry, apply a concrete sealer to the treated area and the surrounding floor. This closes the pores that allowed oil penetration in the first place. Roll it on with a paint roller in thin, even coats. Two coats give better protection than one thick coat.