When two processes read the same data, both make decisions based on it, both write their changes, and the results conflict. The classic example: two people read "$100 in account," both decide to withdraw $80, both writes succeed, account is overdrawn.
A race condition let two customers buy the last ticket at the same second—the inventory check ran before either purchase was recorded.