Most failed concrete paint jobs aren’t the paint’s fault. They peel because the surface was never properly prepared, and that is exactly why prepping concrete for paint matters more than the brand of paint you buy. Concrete is porous, alkaline, and prone to trapping moisture, so a slab that looks clean can still reject coating within weeks. Do the prep right and a good epoxy or masonry paint will hold up for 5 to 10 years on a garage floor.
Why Concrete Prep Is Non-Negotiable
Fresh and aged concrete both fight you in different ways. New slabs leach lime and stay too alkaline, while old slabs collect oil, dust, and a powdery residue called laitance that sits on the surface like a release agent. Paint can’t bond to any of it.
The Portland Cement Association recommends concrete cure for a minimum of 28 days before painting, and 60 days is safer. Skip that window and trapped moisture pushes the coating right back off. Patience here saves you a full redo, which on a 400 sq ft garage can mean $150 to $300 in wasted materials.
Tools and Materials You’ll Need
Gather everything before you start so you’re not running to the hardware store mid-project with a wet floor. A typical prep kit runs $80 to $200 depending on what you already own.
- Stiff-bristle push broom and a wet/dry shop vac
- Concrete degreaser (Krud Kutter or Oil Eater, about $12 to $18 a gallon)
- Muriatic acid or a safer phosphoric-acid etcher like Eco-Etch
- TSP (trisodium phosphate) for general cleaning
- Pressure washer rated 3,000 PSI or a garden hose with a jet nozzle
- Concrete patch or self-leveling compound for cracks
- Stiff wire brush, plastic sheeting, painter’s tape
- Chemical-resistant gloves, safety goggles, and a respirator
Step 1: Deep Clean the Surface
Sweep first, then vacuum the dust you loosened. Tackle oil stains with degreaser, scrubbing it into the spot and letting it dwell 10 to 15 minutes before rinsing. Old motor-oil stains may need two or three passes, and a stubborn one can take an overnight poultice of cat litter or baking soda to draw the oil out.
For overall grime, mix TSP per the label, mop it on, and scrub with the push broom. Rinse thoroughly. Any soap film left behind will block adhesion just as badly as the dirt did.
Step 2: Etch the Concrete
Even clean concrete is usually too smooth and too alkaline for paint to grip. Etching opens the pores and neutralizes surface alkalinity, giving the coating teeth to lock into. Skip this step on a troweled, sealed-looking slab and your paint will sheet off in panels.
Muriatic acid works fast but demands respect. Always add acid to water, never the reverse, and dilute roughly 1 part acid to 10 parts water for light etching. Pour it across a dampened section, scrub with a stiff brush as it fizzes, then rinse completely after 5 to 10 minutes. Done right, the surface should feel like 120-grit sandpaper. If it still feels glassy, etch again.
Acid vs. Mechanical Etching
If chemicals make you nervous, rent a floor grinder or buffer with a diamond pad for about $50 to $80 a day. Mechanical grinding gives a more consistent profile, produces no acidic runoff, and is the pro standard for epoxy. For a small porch or step, acid etching is cheaper and faster.
Step 3: Repair Cracks and Pits
Fill any crack wider than a credit card with a polyurethane or concrete crack filler, and use a self-leveling compound for low spots or spalled areas. Push the filler in with a putty knife, overfill slightly, and scrape flush. Let it cure the full time on the label, usually 2 to 24 hours.
Don’t paint over a moving crack and expect it to disappear. It will telegraph through and split the coating. Wide structural cracks point to a foundation issue worth a contractor’s look before you spend a dime on paint.
Step 4: Test for Moisture
This is the step almost everyone skips, and it’s the one that quietly ruins the most jobs. Tape a 2 ft by 2 ft square of plastic sheeting flat to the slab, sealing all four edges, and leave it 24 hours. Pull it back the next day.
Condensation under the plastic or a darkened patch of concrete means moisture is wicking up through the slab from below. Paint it now and hydrostatic pressure will blister the coating off. Either install a moisture barrier or choose a breathable masonry paint instead of epoxy. A dry square means you’re cleared to coat.
Step 5: Prime, Then Paint
Let the slab dry fully after etching and rinsing, which takes at least 24 hours and longer in humid climates. Roll on a concrete bonding primer if your paint system calls for one, especially with epoxy where a primer coat dramatically improves chip resistance.
Work in 70°F to 85°F conditions with humidity under 70 percent for the best cure. Cut in edges with a brush, then roll the field with a 3/8-inch nap roller. Apply two thin coats rather than one thick one, and respect the recoat window on the can, typically 8 to 24 hours.
Common Mistakes That Cause Peeling
A handful of avoidable errors account for nearly every premature failure. Run through this list before you open the paint.
- Painting concrete younger than 28 days old
- Skipping the etch on a smooth, troweled surface
- Leaving degreaser or TSP residue from an incomplete rinse
- Ignoring the plastic-sheet moisture test
- Coating over active oil stains that bleed back through
- Painting in temperatures below 50°F, which stalls the cure
Get the prep right and the paint almost takes care of itself. Cut corners here and no premium product will save you. Run each step in order and the foundation is set for a coating that bonds.
Plan the job across a weekend rather than rushing it into an afternoon. Cleaning and etching take a few hours of active work, but the drying and curing windows are where the real time goes, and they’re not negotiable. Expect roughly 24 hours for the slab to dry after rinsing, plus another 8 to 24 hours of recoat time between paint layers. A typical garage floor goes from first scrub to walk-on-ready in two to three days, and full cure for vehicle traffic can run 5 to 7 days. Mark it on the calendar so nobody parks on it early and lifts the fresh coating right back off.