What kind of paint you are dealing with
Not all paint on concrete is the same job. Fresh drips and splatter from a painting project usually sit right on top of the slab and have not had time to bond. An old coat put down on purpose, a garage floor, a porch, a painted patio, has had years to work into the surface and bond tighter. Paint that landed on concrete that was already porous or pitted before it was ever painted soaks in deeper than either of those, because it has more surface area to grab onto.
- Fresh drips and splatter, latex or oil, usually still sitting on the surface
- An old coat put down on purpose that has bonded over years
- Paint that soaked into concrete that was already rough or damaged before it was painted
Test a corner before you commit to the whole slab
Before working across a whole driveway or patio, treat a small, out of the way corner first. It tells you how the paint responds, how long a stripper needs to sit, and what the concrete underneath actually looks like once the paint is gone. Concrete that has been hiding under paint for years can be stained, discolored, or rougher than you expect, and it is better to find that out on a two foot square than after you have stripped the whole thing.
A stripper does the lifting, the rinse does the removing
A chemical stripper made for masonry is what actually breaks paint loose from concrete, not the rinse that comes after it. The stripper needs time to sit and work into the paint film before anything gets scrubbed or rinsed away, and rushing that step is the most common reason a first pass leaves patches behind.
Once the paint has lifted, a stiff bristle brush works it loose, and a hard rinse or a pressure washer on a wide, moving pattern clears it off the surface. Going in with the pressure washer first, before the stripper has done its job, mostly just wets the paint down and pushes water where you do not want it.
Grinding is the fallback for what will not lift
Old, thick, or deeply bonded paint sometimes will not fully let go with a stripper alone, especially paint applied in multiple coats over the years. Mechanical grinding takes off a thin layer of the surface along with whatever is sitting in it, which clears paint that chemicals cannot reach. It also changes the texture and look of the surface where it is done, so it is not something to reach for on a small stain when a stripper would have finished the job on its own.
When the stain is in the concrete and not on it
If the concrete was already spalling or scaling before it was ever painted, the paint had open pores and pitting to soak into, and no amount of stripping or grinding fully clears what worked its way in. At that point the honest question stops being how to remove the paint and becomes whether that section of concrete is worth keeping as is.
A bonded resurfacer can cover a worn or stained top layer when the concrete underneath is still solid, and that is a different decision than paint removal. It comes down to what the concrete under the paint is actually doing, not what color it is. Once bare concrete is exposed again, a sealer on the surface keeps the next spill or splatter from soaking in as deep.