A celebrated theorem of Pippenger, and Frankl and Rödl states that every almostregular, uniform hypergraph H with small maximum codegree has an almost-perfect matching. We extend this result by obtaining a conflict-free matching, where conflicts are encoded via a collection C of subsets C ⊆ E(H). We say that a matching M ⊆ E(H) is conflict-free if M does not contain an element of C as a subset. Under natural assumptions on C, we prove that H has a conflict-free, almost-perfect matching. This has many applications, one of which yields new asymptotic results for so-called "high-girth" Steiner systems. Our main tool is a random greedy algorithm which we call the "conflict-free matching process".